似乎D-bus是一种非常有效的方式来在linux中传达proccesses。我的问题是它是否需要之前启动的UI / x11,或者它也可以在没有UI / x11的命令行工具中使用?
答案 0 :(得分:2)
D-Bus工作所需的唯一东西是D-Bus服务器守护进程本身。这是通过dbus-launch
调用的,如果不使用X init系统,它可以集成到shell启动脚本中。此外,应用程序可以尝试自己执行dbus-launch
,以便尝试使用在登录时创建的会话总线,或者为应用程序自己使用创建会话总线。当然,第一个选项(或第二个选项的第一个结果)是首选,因为它将使用更少的资源。
答案 1 :(得分:1)
不,它没有。系统D-Bus(作为dbus --system
启动)在X服务器之前启动。
ldd
对流程的进一步检查并未表明对X的依赖:
$ ldd /usr/bin/dbus-daemon
linux-vdso.so.1 (0x00007fff669ff000)
libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f27cd14e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f27ccefc000)
librt.so.1 => /lib64/librt.so.1 (0x00007f27cccf4000)
libc.so.6 => /lib64/libc.so.6 (0x00007f27cc92b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f27cd378000)