Devpts 文件系统

现在,devpts 文件系统的每个挂载都是不同的,在一个挂载中分配的 pty 及其索引与其他所有挂载中的 pty 及其索引无关。

现在,devpts 文件系统的所有挂载都会创建一个权限为 0000/dev/pts/ptmx 节点。

为了保持向后兼容性,ptmx 设备节点(也称为使用 mknod name c 5 2 创建的任何节点)在打开时,将在与 ptmx 设备节点相同的目录中查找名为 pts 的 devpts 实例。

作为一种选择,可以不将 /dev/ptmx 设备节点放在 /dev/ptmx,而是可以将符号链接指向 /dev/pts/ptmx 放在 /dev/ptmx,或者将 /dev/ptx/ptmx 绑定挂载到 /dev/ptmx。 如果您选择以这种方式使用 devpts 文件系统,则应使用 ptmxmode=0666 挂载 devpts,或者应该调用 chmod 0666 /dev/pts/ptmx

所有实例中 pty 对的总数受 sysctl 限制

kernel.pty.max = 4096       - global limit
kernel.pty.reserve = 1024   - reserved for filesystems mounted from the initial mount namespace
kernel.pty.nr               - current count of ptys

可以通过添加挂载选项 max=<count> 来设置每个实例的限制。

此功能是在内核 3.4 中添加的,同时添加了 sysctl kernel.pty.reserve

在低于 3.4 的内核中,sysctl kernel.pty.max 用作每个实例的限制。