如何在 X 中啟動用戶軟件

如何在 X 中啟動用戶軟件

編譯自: http://www.enricozini.org/blog/2018/debian/starting-user-software/

譯者: geekpi

目前有很多方法可以在開啟用戶會話時啟動軟件。

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

x11-common

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-session、xfce4-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/


分享到:


相關文章: