Was ist $XDG_VTNR
? Wo und wann wird es gesetzt?
Es wird durch die pam_systemd
gesetzt PAM-Modul und wird nur auf Rechnern gesetzt, die systemd verwenden, was bedeutet, dass Sie nicht sollten Verlassen Sie sich in Ihren Skripten darauf, es sei denn, Sie möchten sie von systemd abhängig machen.
Auf Systemen, die systemd verwenden, $XDG_VTNR
werden sowohl grafisch (durch lightdm
, gdm
, usw.) und in Sitzungen im Textmodus (durch /bin/login
).
Wo finde ich die offizielle Dokumentation zu dieser Variable?
Im pam_systemd(8)
Handbuchseite.
tty
ist ein eingebauter Befehl, während $XDG_VTNR
wird von Xorg bereitgestellt, warum sich Leute für $XDG_VTNR
entscheiden statt eingebautem tty
?
1) tty
ist ein eigenständiges Programm, kein eingebautes, und $XDG_VTNR
wird nicht von Xorg bereitgestellt.
2) Weil es völlig verschiedene Dinge sind. Wie in seiner Manpage deutlich angegeben, tty(1)
teilt Ihnen den Namen des Terminals mit, das mit seiner Standardeingabe verbunden ist, nicht den Namen des virtuellen Terminals, auf dem Ihre GUI-Sitzung oder dergleichen möglicherweise ausgeführt wird[1]. Bedenken Sie Folgendes:
$ script -q /dev/null
$ tty
/dev/pts/5
$ script -q /dev/null
$ tty
/dev/pts/6
$ tty </dev/zero
not a tty
[1] für die XDG_VTNR
ist auch kein zuverlässiger Indikator.