Login
w 命令不顯示所有偽終端會話
如果我打開終端並執行
w
命令,那麼它將顯示:user tty7 :0 12:04 39:56 36.87s 0.06s /sbin/upstart -
現在,如果打開
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
gnome-terminal
但是當我打開或時它不會顯示新條目xfce4-terminal
。為什麼它為終結者而不是 xfce4-terminal 顯示新會話?
w
顯示儲存在utmp
(/var/run/utmp
通常在 Linux 系統上)中的資訊。這通常僅由“登錄”會話更新,即login
(用於虛擬控制台或串列連接上的登錄)、顯示管理器(用於圖形會話)、SSH 伺服器(用於 SSH 連接)和一些(大多數?)終端仿真器。在後一種情況下,它們是否更新utmp
取決於它們的內置支持和配置;例如xterm
有這個ut
標誌(-ut
禁用utmp
更新,+ut
啟用它們),並且 GNOME 終端不再utmp
直接更新。因此,您會看到已添加到
utmp
您的案例中的條目:一個由您的顯示管理器添加(ontty7
),另一個由您正在使用的某些終端仿真器添加。應該可以包裝命令以將
utmp
日誌記錄添加到您喜歡的任何內容中,例如使用libutempter
,但這顯然不像人們希望的那樣簡單。