debian 中的 .xsession 和 startx
如果我的主文件夾沒有 a
.xinitrc
但有 a.xsession
包括:#!/bin/bash exec jwm
將
startx -- -nolisten local -nolisten tcp
實際處理-nolisten
選項?我想如果我創建一個
.xinitrc
具有相同內容的,startx
將不會處理任何選項。
startx
將把它的命令行參數分成兩組,用雙破折號分隔:要啟動的 X 客戶端(+ 其參數)和 X 伺服器選項。提供 a
.xinitrc
是為 X 客戶端部分提供使用者特定預設值的一種方式;它應該對 X 伺服器選項部分沒有任何影響。如果它確實有效果,那將是一個錯誤。在 Debian 10 中,如果使用者有 no
.startxrc
和 no.xinitrc
,並且系統管理員沒有創建系統範圍/usr/lib/x86_64-linux-gnu/sys.startxrc
(或任何適合您的硬體架構的路徑 - 它預設不存在),那麼startx
將/etc/X11/xinit/xinitrc
用作 X 客戶端部分。預設情況下,這將只獲取 X11 會話腳本
/etc/X11/Xsession
,它應該對 Debian 中的所有 X 會話啟動方法都是通用的。它將反過來獲取/etc/X11/Xsession.d/
目錄中的任何腳本。其中,/etc/X11/Xsession.d/50x11-common_determine-startup
將檢測使用者.xsession
文件的存在,稍後99x11-common_start
將在exec
所有其他Xsession.d
腳本執行後使用 執行它。但是,如果您同時使用
-nolisten local
和-nolisten tcp
伺服器選項,是否還有任何 X11 傳輸方法可用?根據X(7)
手冊頁,如果變數有一個空字元串作為主機規範,DISPLAY
例如本地會話的預設 DISPLAY 值,則將使用傳輸方法。如果它已被禁用,我預計會話將不可避免地失敗 - 但我很久以前就沒有詳細調查過 X11 會話啟動的這個角落,所以我可能會遺漏一些東西。:0``:0.0``local