<ブロック引用>
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
も信頼できる指標ではありません。