我想知道 gnome2 和 gnome3 配置守护进程在什么时候、通过什么方式gconfd-2
启动dconf-service
?
可能手段的示例:
- 初始化脚本
- Xsession.d 脚本
- .desktop 文件
- 通过 .service 文件激活 dbus(在本例中,谁触发其启动以及如何触发)
dconf 的文档说,该 dconf-service 由 dbus 启动。哪个进程触发其激活以及何时?
答案1
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. 每会话守护进程用于桌面应用程序之间的各种进程间通信。