我正在尝试确定打开了多少个终端窗口,如中所述这个问答的答案。不过/dev/pts
Mac OSX 上似乎没有。有替代方案吗?
答案1
你引用的答案建议通过计算现有伪终端的数量来计算打开的终端窗口数量。我不认为这是一个正确的答案:它实际上计算终端窗口的数量加上远程登录、screen
窗口tmux
或script
会话expect
等的数量。要真正计算终端窗口的数量,您必须采取措施从计数中排除所有其他内容。也许您可以检查每个 pty 以查看终端应用程序(例如Terminal.app
MacOS)是否是列出在该 tty 上运行的任何进程的父进程(使用ps -ft<name of tty>
)。
无论如何,直接回答你的问题“Mac OSX 上有 /dev/pts 替代品吗?”是的,MacOS 上的终端窗口在伪 tty 中运行,就像在其他操作系统上一样。正如您从在其中之一下运行的输出中看到的那样tty
,这些 pty 的名称遵循模式/dev/ttys<three digits>
,并且正如您从一些快速实验中看到的ls
那样,只有当前分配的实际存在于 中/dev
。因此,是的,检查哪些 ptys 存在的相同技巧可以在/dev
MacOS 下使用。 (请注意,此技巧并非在每个操作系统下都有效:在某些操作系统下:所有可能的 pty 名称始终存在,/dev
无论它们是否已分配。)