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
用作每个实例的限制。