exec 和 dbus-launch 有什么区别?

exec 和 dbus-launch 有什么区别?

exec p如果我启动一个进程,特别是在会话开始时,使用和之间有什么区别dbus-launch p

答案1

dbus-launch数据库总线-有关的。exec是一个内置的外壳。请参阅他们的联机帮助页/帮助页面:

dbus-launch - Utility to start a message bus from a shell script.
exec - Replace the shell with the given command.

所以...他们基本上做了两件不同的事情...虽然两者都期望启动p作为参数传递的程序,但您可以在 的情况下读到dbus-launch,首先完成其他一些事情:

您可以指定要运行的程序;在这种情况下,dbus-launch将启动一个会话总线实例,设置适当的环境变量,以便指定的程序可以找到总线,然后使用指定的参数执行指定的程序。

在这种情况下,在创建进程之前创建 DBus 守护进程实例,并且它应该运行辅助会话总线,该总线通过环境变量可供子进程使用。

另请注意,在 的情况下exec,当前 shell 会被新程序替换。dbus-launch不会替换 shell,也不会替换与守护进程一起启动的程序。

相关内容