Qu'est-ce que
$XDG_VTNR
? Où et quand est-il configuré ?
Il est défini par le pam_systemd
module PAM, et n'est défini que sur les machines qui utilisent systemd, ce qui signifie que vous ne devriez pas comptez-y dans vos scripts, à moins que vous ne vouliez les faire dépendre de systemd.
Sur les systèmes qui utilisent systemd, $XDG_VTNR
seront définis à la fois en graphique (par lightdm
, gdm
, etc) et dans les sessions en mode texte (par /bin/login
).
Où puis-je trouver la documentation officielle sur cette variable ?
Dans le pam_systemd(8)
page de manuel.
tty
est une commande intégrée tandis que$XDG_VTNR
est fourni par Xorg, pourquoi les gens choisissent d'utiliser$XDG_VTNR
au lieu detty
intégré ?
1) tty
est un programme autonome, pas intégré, et $XDG_VTNR
n'est pas fourni par Xorg.
2) Parce que ce sont des choses complètement différentes. Comme indiqué clairement dans sa page de manuel, tty(1)
vous indiquera le nom du terminal connecté à son entrée standard, et non le nom du terminal virtuel sur lequel votre session GUI ou autre peut s'exécuter[1]. Considérez ceci :
$ script -q /dev/null
$ tty
/dev/pts/5
$ script -q /dev/null
$ tty
/dev/pts/6
$ tty </dev/zero
not a tty
[1] dont XDG_VTNR
n'est pas non plus un indicateur fiable.