如何在 Gnome3 或其他基于 gnome 的桌面环境中启动 gconfd-2 和 dconf-service?

如何在 Gnome3 或其他基于 gnome 的桌面环境中启动 gconfd-2 和 dconf-service?

我想知道 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- 添加一些应用程序收藏夹,查看详细信息:对象路径、目的地、信号(例如信号Notifyca.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. 每会话守护进程用于桌面应用程序之间的各种进程间通信。

相关内容