在目录 /dev/pts 中,我看到 3 个 pts 实例,如下面的屏幕截图所示,但是当我运行命令时,w
我只看到 1 个 pts 实例。这是为什么?
/dev/pts
w
答案1
w
不直接处理 tty 设备——它只显示在 中注册的设备/run/utmp
。程序(如终端仿真器或远程登录守护程序)通常会自行注册以在w
/who
列表中可见,但不是必需的以任何方式这样做。
例如,screen
当您分离时,实用程序会自行注销,尽管保留了分配的 pty 设备。screen 的流行替代品tmux
从不使用 utmp – 它没有被编程为使用它。一些终端仿真器不会自行注册,仅仅是因为缺乏权限(程序需要设置“setgid utmp”)。可能还有更多原因,但并非全部都是恶意的。
使用lsof
或者fuser
查看所有打开这些 pty 的进程:
sudo fuser -v /dev/pts/*
sudo lsof /dev/pts/*