Tty
/proc/tty/drivers 中的哪一行反映了 w 命令?
網頁上有一句話描述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
在 X11
Xstartup
腳本中。在我的 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
.