什么程序启动 dbus-daemon?

什么程序启动 dbus-daemon?

哪个程序在 GNOME 2 和 GNOME 3 中启动每个用户会话的 dbus-daemon 进程(大概是通过 dbus-launch)?我想知道,因为我想将一个目录添加到 dbus-daemon 检查 .service 文件的目录列表中。

(显然,如果它是一个 sh 程序,“sh”不是我要找的答案;-)

我如何才能有效地回答这个问题?关于桌面和会话启动有哪些文档?

答案1

登录管理器通过 Xsession 脚本目录启动 dbus。如果use-session-dbus为 Xsession 设置了该选项,则会加载并运行 dbus Xsession 脚本dbus-launch --exit-with-session $session_command

答案2

启动过程中的大多数任务和服务(包括 Dbus 守护程序)均由暴发户

Dbus 守护进程不是在每个用户会话中启动的,而是在安装最后一个本地文件系统. 处理 Dbus 守护进程的启动/停止/监控的 Upstart 作业配置可以在 中找到/etc/init/dbus.conf

您可以使用用户作业启动 Hamster图形登录

答案3

我不同意多比的观点。最好的办法是学会如何自己找到答案。

列出所有进程及其PID树结构:

pstree
init─┬─ModemManager───2*[{ModemManager}]
     ├─NetworkManager─┬─2*[dhclient]
     │                ├─dnsmasq
     │                └─3*[{NetworkManager}]
     ├─accounts-daemon───2*[{accounts-daemon}]
     ├─acpid
     ├─avahi-daemon───avahi-daemon
     ├─bluetoothd
     ├─colord───2*[{colord}]
     ├─cron
     ├─cups-browsed
     ├─cupsd
     ├─dbus-daemon
....

因此 dbus-daemon 由 启动init。但是请注意,有多个 dbus-daemon 在运行。

manos@box:~$ ps aux | grep dbus-daemon
message+   845  0.0  0.0  40668  2620 ?        Ss   10:48   0:03 dbus-daemon --system --fork
manos     2480  0.0  0.0  40248  2428 ?        Ss   10:48   0:01 dbus-daemon --fork --session --address=unix:abstract=/tmp/dbus-o3GMKn9JC1
manos     2569  0.0  0.0  39248  2004 ?        S    10:48   0:00 /bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3

也就是说,至少有两个 dbus-daemon 实例正在运行。一个由 init 启动,是系统范围内的,另一个在用户登录时为其启动。通过查看完整的 PID 树结构(使用pstree),您可以直观地找到启动第二个实例的确切进程。

相关内容