/proc/tty/drivers의 어떤 줄이 w 명령을 반영합니까?

/proc/tty/drivers의 어떤 줄이 w 명령을 반영합니까?

웹 페이지에 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 명령을 반영합니까?

답변1

내가 아는 한, 이 w유틸리티는 utmp데이터베이스를 읽어 TTY 정보를 표시합니다. 이는 "Manage utmp/wtmp items for non-init client"라는 X11 유틸리티를 사용하여 작성된 것으로 보입니다 wtmp.xdmsessreg

설명서에는 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

( 저는 OpenBSD kk와 "동등한" 사람입니다 )doassudo

$ 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.

관련 정보