Tty

/proc/tty/drivers 中的哪一行反映了 w 命令?

  • January 11, 2017

網頁上有一句話描述tty驅動。

註冊的 tty 驅動程序

/proc/tty/drivers 文件顯示所有目前註冊的 tty 驅動程序。

這是關於 w 和 /proc/tty/drivers 的一些資訊。

debian8@hwy:~$ w
23:53:38 up 2 min,  1 user,  load average: 0.47, 0.46, 0.20
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
debian8  :0       :0               23:51   ?xdm?   4.62s  0.05s /usr/bin/lxsess
debian8@hwy:~$ cat /proc/tty/drivers
/dev/tty             /dev/tty        5       0 system:/dev/tty
/dev/console         /dev/console    5       1 system:console
/dev/ptmx            /dev/ptmx       5       2 system
/dev/vc/0            /dev/vc/0       4       0 system:vtmaster
serial               /dev/ttyS       4 64-95 serial
pty_slave            /dev/pts      136 0-1048575 pty:slave
pty_master           /dev/ptm      128 0-1048575 pty:master
unknown              /dev/tty        4 1-63 console

/proc/tty/drivers 中的哪一行反映了 w 命令?

據我所知,該w實用程序讀取utmp數據庫以顯示其 TTY 資訊。wtmp這是由 寫入的xdm,顯然是通過使用稱為sessreg(一個“為非初始化客戶端管理 utmp/wtmp 條目”的 X11 實用程序)寫入的。

手冊上sessreg說要放一條線

sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER

在 X11Xstartup腳本中。在我的 OpenBSD 機器上,該行實際上是 (in /etc/X11/xdm/Xstartup)

exec /usr/X11R6/bin/sessreg  -a -w /var/log/wtmp -u /var/run/utmp       -x /etc/X11/xdm/Xservers -l $DISPLAY -h "" $USER

-l標誌在手冊中有以下描述sessreg

這描述了條目的“行”名稱。對於終端會話,這是終端設備文件名的最終路徑名段(例如ttyd0)。對於 X 會話,它可能應該是給予使用者會話的本地顯示名稱(例如:0)。如果未指定,則終端名稱將由ttyname(3)前導組件確定並去除。

作為一個實驗:

$ doas sessreg -a -l hello kk

kk是我,doas是 OpenBSD 的“等價物” sudo

$ w
7:31PM  up 10:55, 2 users, load averages: 1.20, 1.16, 1.10
USER    TTY FROM              LOGIN@  IDLE WHAT
kk       p0 192.168.216.1     8:47AM     0 tmux: client (/tmp/tmux-1000/default)
kk       he -                 7:31PM     0 -

$ doas sessreg -d -l hello kk

$ w
7:32PM  up 10:56, 1 user, load averages: 1.22, 1.17, 1.11
USER    TTY FROM              LOGIN@  IDLE WHAT
kk       p0 192.168.216.1     8:47AM     0 tmux: client (/tmp/tmux-1000/default)

$ last | head -n 3
kk        hello                             Wed Jan 11 19:31 - 19:31  (00:00)
kk        ttyC0                             Wed Jan 11 18:54 - 19:21  (00:27)
kk        ttyp0    192.168.216.1            Wed Jan 11 08:47   still logged in

總之::0只是sessreg實用程序放在那裡的一個文本字元串。它可以是任何東西,但很可能是$DISPLAY.

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