私が見つけたほとんどすべてのページは、説明のないログインでXorgを自動的に起動しようとしています。たとえば、~/.bash_profile
を例にとります。
if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
exec xinit
fi
$XDG_VTNR
は現在のTTY番号を取得するための変数である可能性があると思いますが、同じ目的を満たすことができるtty
というコマンドがすでに存在しています。
私の質問:
$XDG_VTNR
とは何ですか?いつどこで設定されますか?tty
は組み込みコマンドですが、$XDG_VTNR
はXorgから提供されています。組み込みtty
ではなく$XDG_VTNR
を使用する理由は何ですか?_
$XDG_VTNR
_とは何ですか?いつどこで設定されますか?
これは_pam_systemd
_ PAMモジュールによって設定され、systemdを使用しているマシンでのみ設定されます。つまり、依存しないでくださいスクリプトで、systemdに依存させたくない場合を除きます。
Systemdを使用しているシステムでは、_$XDG_VTNR
_はグラフィカル(lightdm
、gdm
など)とテキストモードセッション(_/bin/login
_)の両方で設定されます。 。
この変数に関する公式ドキュメントはどこにありますか?
pam_systemd(8)
マンページ。
tty
は組み込みコマンドですが、_$XDG_VTNR
_はXorgによって提供されていますが、組み込みtty
ではなく_$XDG_VTNR
_を使用する理由は何ですか?
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
_も信頼できる指標ではありません。