Xorg
gconfd-2 和 dconf-service 如何在 Gnome3 或其他基於 gnome 的桌面環境中啟動?
我想知道,gnome2 和 gnome3 配置守護程序是在什麼時候以及通過什麼方式
gconfd-2
啟動dconf-service
的?可能手段的例子:
- 初始化腳本
- Xsession.d 腳本
- .desktop 文件
- 通過 .service 文件啟動 dbus(在這種情況下,誰觸發了他們的啟動以及如何觸發)
dconf 的文件說,dconf-service 是由 dbus 啟動的。哪個程序觸發它的啟動以及何時觸發?
dconf-service
根據相同的文件頁面,會話守護程序1在需要時自動啟動:使用者或管理員永遠不需要啟動服務,因為它會*dbus-daemon(1)在應用程序嘗試啟動時* 自動啟動*寫設置*。 從 dconf 數據庫讀取值不涉及服務; 它僅用於寫入。
服務文件是
/usr/share/dbus-1/services/ca.desrt.dconf.service
. 您可以很容易地看到它僅在應用程序嘗試寫入設置時啟動,如果在重新啟動到 gnome 桌面後打開終端並執行:journalctl -f
現在,如果您啟動一個嘗試寫入設置的應用程序,例如
gedit
,會話守護程序將報告:/usr/lib/gdm/gdm-x-session[504]: Activating service name='org.gnome.gedit' /usr/lib/gdm/gdm-x-session[504]: Successfully activated service 'org.gnome.gedit' /usr/lib/gdm/gdm-x-session[502]: Activating service name='ca.desrt.dconf' /usr/lib/gdm/gdm-x-session[502]: Successfully activated service 'ca.desrt.dconf'
您還可以通過以下方式監控服務:
gdbus 監視器 --session --dest = ca.desrt.dconf
監控來自 ca.desrt.dconf 擁有的所有對象的信號 名稱 ca.desrt.dconf 歸 :1.45 所有
並做一些事情,例如gnome-shell - 將一些應用程序添加到收藏夾,以查看詳細資訊:對象路徑、目的地、信號(例如信號
Notify
在ca.desrt.dconf.Writer
介面上)等:/ca/desrt/dconf/Writer/user: ca.desrt.dconf.Writer.Notify ('/org/gnome/shell/favorite-apps', [''], ':1.45:user:42') /ca/desrt/dconf/Writer/user: ca.desrt.dconf.Writer.Notify ('/org/gnome/shell/favorite-apps', [''], ':1.45:user:43') /ca/desrt/dconf/Writer/user: ca.desrt.dconf.Writer.Notify ('/org/gnome/shell/favorite-apps', [''], ':1.45:user:44') /ca/desrt/dconf/Writer/user: ca.desrt.dconf.Writer.Notify ('/org/gnome/shell/favorite-apps', [''], ':1.45:user:45')
1. per-session daemon 用於桌面應用程序之間的各種程序間通信。