На веб-странице есть предложение, описывающее драйверы tty.
зарегистрированные драйверы tty
В файле / proc / tty / drivers показаны все зарегистрированные в настоящее время драйверы tty.
Вот некоторая информация о драйверах w и / proc / tty /.
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
wtmp
для отображения информации TTY, насколько мне известно. Это записано в xdm
, очевидно, с помощью так называемого sessreg
(утилита X11, которая «управляет записями utmp / wtmp для клиентов, не являющихся инициаторами»).
В руководстве sessreg
говорится, что в скрипте X11 Xstartup
следует поместить строку, подобную
sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER
. На моей машине OpenBSD строка фактически читает (в / 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
manual:
Здесь описывается "строковое" имя записи. Для сеансов терминала это последний сегмент пути в имени файла устройства терминала (например,
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
.