Linux D-bus需要UI还是也可以在命令行工具中使用?

Linux D-bus需要UI还是也可以在命令行工具中使用?,linux,x11,dbus,Linux,X11,Dbus,在linux中,D-bus似乎是一种非常方便的进程通信方式。我的问题是,它是否需要在之前启动UI/x11,或者它也可以在没有UI/x11的命令行工具中使用?D-Bus要工作,唯一需要的是D-Bus服务器守护程序本身。这是通过dbuslaunch调用的,如果不使用X init系统,可以将其集成到shell启动脚本中。此外,应用程序可以尝试自己执行dbus launch,以便尝试使用登录时创建的会话总线或创建供应用程序自己使用的会话总线。当然,第一个选项(或第二个选项的第一个结果)是首选的,因为它总

在linux中,D-bus似乎是一种非常方便的进程通信方式。我的问题是,它是否需要在之前启动UI/x11,或者它也可以在没有UI/x11的命令行工具中使用?

D-Bus要工作,唯一需要的是D-Bus服务器守护程序本身。这是通过
dbuslaunch
调用的,如果不使用X init系统,可以将其集成到shell启动脚本中。此外,应用程序可以尝试自己执行
dbus launch
,以便尝试使用登录时创建的会话总线或创建供应用程序自己使用的会话总线。当然,第一个选项(或第二个选项的第一个结果)是首选的,因为它总体上使用的资源更少。

D-Bus要工作,唯一需要的是D-Bus服务器守护进程本身。这是通过
dbuslaunch
调用的,如果不使用X init系统,可以将其集成到shell启动脚本中。此外,应用程序可以尝试自己执行
dbus launch
,以便尝试使用登录时创建的会话总线或创建供应用程序自己使用的会话总线。当然,第一个选项(或第二个选项的第一个结果)是首选的,因为它将使用更少的资源。

不,它不会。系统D总线(作为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)

不,没有。系统D总线(作为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)