歡迎光臨
每天分享高質量文章

如何在 X 中啟動使用者軟體 | Linux 中國

這是一篇試圖將所有方法聚集在一起的文章。某些部分可能不精確或不正確,但這是一個開始
— Enrico Zini


致謝
編譯自 | http://www.enricozini.org/blog/2018/debian/starting-user-software/ 
 作者 | Enrico Zini
 譯者 | geekpi ? ? 共計翻譯:724 篇 貢獻時間:1676 天

目前有很多方法可以在開啟使用者會話時啟動軟體。

這是一篇試圖將所有方法聚集在一起的文章。某些部分可能不精確或不正確,但這是一個開始,如果我收到更正,我很樂意保持更新。

x11-common

  1. man xsession

◈ 由顯示管理器啟動,如 /usr/share/lightdm/lightdm.conf.d/01_debian.conf 或 /etc/gdm3/Xsession
◈ Debian 特定。
◈ 在 /etc/X11/Xsession.d/ 中執行指令碼。
◈ /etc/X11/Xsession.d/40x11-common_xsessionrc 取用 ~/.xsessionrc ,它能比設定環境變數能做的多一點,因為它在 X 會話啟動時執行。
◈ 最後,它啟動會話管理器(gnome-sessionxfce4-session 等等)。

systemd –user

◈ https://wiki.archlinux.org/index.php/Systemd/User
◈ 由 pam_systemd 啟動,所以在環境變數中可能沒有設定 DISPLAY 變數。
◈ 管理單元:

◈ /usr/lib/systemd/user/ 由已安裝的軟體包提供的單元。
◈ ~/.local/share/systemd/user/ 由安裝在家目錄的軟體包提供的單元。
◈ /etc/systemd/user/ 由系統管理員提供的系統範圍的使用者的單元。
◈ ~/.config/systemd/user/ ,使用者自己放置的單元。
◈ 當設定 X 會話和 DISPLAY 變數時,啟動 systemd 使用者單元的技巧是從 .desktop 自啟動檔案呼叫 systemctl start

dbus 啟用

◈ https://dbus.freedesktop.org/doc/system-activation.txt
◈ 進行 dbus 請求的使用者行程可以觸發啟動伺服器程式。
◈ 對於系統除錯,有沒有一種方法可以監控哪些服務正在啟動 dbus ?

X 會話管理器

◈ https://en.wikipedia.org/wiki/X_session_manager
◈ 由 x11-common 的 Xsession.d 執行。
◈ 執行 freedesktop 自動啟動的 .desktop 檔案。
◈ 執行桌面環境特定的軟體。

xdg 自動啟動

◈ https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html
◈ 由會話管理器執行。
◈ 如果存在 /etc/xdg/autostart/foo.desktop 和 ~/.config/autostart/foo.desktop ,那麼只會使用 ~/.config/autostart/foo.desktop,因為 ~/.config/autostart/ 比 /etc/xdg/autostart/ 更重要。
◈ 是順序的還是並行?

其他啟動註意事項

~/.Xauthority

要連線到 X 伺服器,客戶端需要從 ~/.Xauthority 傳送一個令牌,這證明他們可以讀取使用者的隱私資料。

~/.Xauthority 包含顯示管理器生成的一個令牌,併在啟動時傳遞給 X。

要檢視它的內容,請使用 xauth -i -f ~/.Xauthority list


via: http://www.enricozini.org/blog/2018/debian/starting-user-software/

作者:Enrico Zini[6] 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂