Co je
$XDG_VTNR
? Kde a kdy se nastavuje?
Nastavuje se pomocí pam_systemd
Modul PAM a je nastaven pouze na počítačích, které používají systemd, což znamená, že byste neměli spolehněte se na to ve svých skriptech, pokud nechcete, aby byly závislé na systemd.
Na systémech, které používají systemd, $XDG_VTNR
budou nastaveny jak graficky (pomocí lightdm
, gdm
, atd.) a v relacích v textovém režimu (podle /bin/login
).
Kde najdu oficiální dokumentaci k této proměnné?
V pam_systemd(8)
manuálová stránka.
tty
je vestavěný příkaz, zatímco$XDG_VTNR
poskytuje Xorg, proč se lidé rozhodnou používat$XDG_VTNR
místo vestavěnéhotty
?
1) tty
je samostatný program, nikoli vestavěný, a $XDG_VTNR
není poskytována společností Xorg.
2) Protože jsou to úplně jiné věci. Jak je jasně uvedeno na jeho manuálové stránce, tty(1)
vám sdělí název terminálu připojeného k jeho standardnímu vstupu, nikoli název virtuálního terminálu, na kterém může být spuštěna vaše relace GUI nebo něco podobného[1]. Zvažte toto:
$ script -q /dev/null
$ tty
/dev/pts/5
$ script -q /dev/null
$ tty
/dev/pts/6
$ tty </dev/zero
not a tty
[1] pro které XDG_VTNR
není ani spolehlivým ukazatelem.