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