Devpts 文件系统

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

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

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

作为一种选择,与其在 /dev/ptmx 处放置一个 /dev/ptmx 设备节点,不如在 /dev/ptmx 处放置一个指向 /dev/pts/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 用作每个实例的限制。