Linux

什麼是環境變數 XDG_VTNR?

  • May 26, 2019

幾乎我發現的每個頁面都將在登錄後自動啟動 Xorg 而沒有解釋,~/.bash_profile例如:

if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
 exec xinit
fi

我想$XDG_VTNR可能是獲取目前 TTY 號碼的變數,但是,已經有一個名為 的命令tty,它可以達到相同的目的。

我的問題:

  1. 是什麼$XDG_VTNR?它是在何時何地設置的?
  2. 我在哪裡可以找到有關此變數的官方文件?
  3. tty是 Xorg 提供的內置命令$XDG_VTNR,為什麼人們選擇使用$XDG_VTNR而不是 built-in tty

是什麼$XDG_VTNR?它是在何時何地設置的?

它由pam_systemdPAM 模組設置,並且僅在使用 systemd 的機器上設置,這意味著您不應腳本中依賴它,除非您想讓它們依賴於 systemd。

在使用 systemd 的系統上,$XDG_VTNR將在圖形(by lightdmgdm等)和文本模式會話(by /bin/login)中設置。

我在哪裡可以找到有關此變數的官方文件?

pam_systemd(8)手冊頁中。

tty是 Xorg 提供的內置命令$XDG_VTNR,為什麼人們選擇使用$XDG_VTNR而不是 built-in 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也不是一個可靠的指標。

引用自:https://unix.stackexchange.com/questions/521037