Prv*_*dav 2 login session xfce4-terminal w pts
如果我打开终端并执行w
命令,它将显示:
user tty7 :0 12:04 39:56 36.87s 0.06s /sbin/upstart -
Run Code Online (Sandbox Code Playgroud)
现在,如果打开terminator
或xterm
执行w
命令,那么它将在w
命令的输出中显示它的条目,例如
user tty7 :0 12:04 39:56 36.87s 0.06s
/sbin/upstart -
user pts/2 :0.0 12:50 1.00s 0.02s 0.00s w
Run Code Online (Sandbox Code Playgroud)
但是当我打开gnome-terminal
或时它不会显示新条目xfce4-terminal
。为什么它为终结者而不是 xfce4-terminal 显示新会话?
w
显示存储在utmp
(/var/run/utmp
通常在 Linux 系统上)中的信息。这通常仅由“登录”会话更新,即 login
(用于在虚拟控制台或串行连接上登录)、显示管理器(用于图形会话)、SSH 服务器(用于 SSH 连接)和一些(大多数?)终端模拟器。在后一种情况下,它们是否更新utmp
取决于它们的内置支持和配置;例如xterm
具有此ut
标志(-ut
禁用utmp
更新,+ut
启用它们),并且 GNOME 终端根本不再utmp
直接更新。
因此,您会看到已添加到utmp
您的案例中的条目:您的显示管理器添加的条目(在tty7
),而其他由您正在使用的某些终端模拟器添加的。
应该可以包装命令以将utmp
日志添加到您喜欢的任何内容中,例如使用libutempter
,但这显然不像人们希望的那么简单。