<ブロック引用>
Linux
$XDG_VTNRとは ?いつ、どこで設定されますか?
pam_systemd によって設定されます PAM モジュールであり、systemd を使用しているマシンでのみ設定されます。つまり、すべきではありません。 スクリプトを systemd に依存させたくない場合は、スクリプトでこれに依存してください。
systemd を使用しているシステムでは、$XDG_VTNR 両方ともグラフィカルに設定されます (by lightdm 、 gdm など) およびテキスト モード セッション (/bin/login による) ).
この変数に関する公式ドキュメントはどこにありますか?
pam_systemd(8) で
tty $XDG_VTNR の場合は組み込みコマンドです $XDG_VTNR を使用する理由 組み込みの tty の代わりに ?
1) tty 組み込みではなくスタンドアロンのプログラムであり、$XDG_VTNR Xorg では提供されていません。
2) 全く別物だからです。そのマンページで明確に述べられているように、 tty(1) GUIセッションなどが実行されている可能性のある仮想端末の名前ではなく、標準入力に接続されている端末の名前を通知します[1]。これを考慮してください:
$ script -q /dev/null
$ tty
/dev/pts/5
$ script -q /dev/null
$ tty
/dev/pts/6
$ tty </dev/zero
not a tty
[1] XDG_VTNR も信頼できる指標ではありません。