Login

w 命令不顯示所有偽終端會話

  • July 6, 2018

如果我打開終端並執行w命令,那麼它將顯示:

user   tty7     :0               12:04   39:56  36.87s  0.06s /sbin/upstart -

現在,如果打開terminatorxterm執行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您的案例中的條目:一個由您的顯示管理器添加(on tty7),另一個由您正在使用的某些終端仿真器添加。

應該可以包裝命令以將utmp日誌記錄添加到您喜歡的任何內容中,例如使用libutempter,但這顯然不像人們希望的那樣簡單

引用自:https://unix.stackexchange.com/questions/441717