为什么 /dev/pts 中有 3 个 pts 条目,而 w 只显示 1 个?

为什么 /dev/pts 中有 3 个 pts 条目,而 w 只显示 1 个?

在目录 /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/*

相关内容