¿Qué es $XDG_VTNR
? ? ¿Dónde y cuándo se establece?
Lo establece el pam_systemd
módulo PAM, y solo está configurado en máquinas que usan systemd, lo que significa que no debe confíe en él en sus secuencias de comandos, a menos que desee que dependan de systemd.
En sistemas que usan systemd, $XDG_VTNR
se establecerá tanto en gráfico (por lightdm
, gdm
, etc) y en sesiones en modo texto (por /bin/login
).
¿Dónde puedo encontrar la documentación oficial sobre esta variable?
En el pam_systemd(8)
página de manual.
tty
es un comando integrado mientras que $XDG_VTNR
es proporcionado por Xorg, por qué las personas eligen usar $XDG_VTNR
en lugar del tty
incorporado ?
1) tty
es un programa independiente, no integrado, y $XDG_VTNR
no es proporcionado por Xorg.
2) Porque son cosas completamente diferentes. Como se indica claramente en su página de manual, tty(1)
le dirá el nombre de la terminal conectada a su entrada estándar, no el nombre de la terminal virtual en la que se esté ejecutando su sesión GUI [1]. Considere esto:
$ script -q /dev/null
$ tty
/dev/pts/5
$ script -q /dev/null
$ tty
/dev/pts/6
$ tty </dev/zero
not a tty
[1] para el cual XDG_VTNR
tampoco es un indicador confiable.