我正在尝试通过X11转发和SSH运行各种Gnome应用程序。某些应用程序将导致首先生成“ dbus-launch”应用程序。问题是退出X应用程序时dbus-launch不会关闭,因此必须先将其杀死,然后才能正确关闭SSH会话。
我认为问题是X / Gnome应用程序无法与主消息总线守护程序连接,因此必须启动它们自己的副本?我怎样才能解决这个问题?还是我想念什么?
这是一个例子。我启用了X11转发,一切似乎工作正常。
[me@host ~]$ gnome-calculator &
[1] 4803
(这里gcalctool程序启动,并显示在我的删除X服务器(Xming)中)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4803 pts/0 00:00:00 gnome-calculator
4807 pts/0 00:00:00 dbus-launch
4870 pts/0 00:00:00 ps
(现在,在远程会话中关闭gcalctool应用后)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4807 pts/0 00:00:00 dbus-launch
4898 pts/0 00:00:00 ps
请注意,dbus-launch仍处于活动状态。最糟糕的是,这会阻止SSH连接正常关闭,直到被终止。
请注意,系统范围的消息守护程序正在运行,如此处所示:
[me@host ~]$ ps ax
4696 ? Ssl 0:00 dbus-daemon --system
我在这里想念什么?我从未见过这种行为。大概,我只见过可以不受阻碍地连接到消息总线守护程序的应用程序吗?我已经在/ etc / dbus-1中寻找了答案,但是不知道要寻找什么。
先谢谢您的帮助。
[编辑]
好的,我意识到自己遇到了一个常见问题。看来这是相当普遍的行为,但是没有好的解决方案。我正在SSH挂起,因为tty中的dbus-launch仍处于活动状态。但是似乎没有什么好方法可以使dbus的发布悄然发生。
查看/etc/X11/xinit/xinitrc.d/00-start-message-bus.sh会提供一些有关“正常” X会话应该发生的情况的线索。当仅将X应用程序调用到远程X Server时,这当然是行不通的。
作为临时的解决方法,我已将其添加到我的.bash_logout中:
# ~/.bash_logout
pkill -u $USER -t `tty | cut -d '/' -f 3,4` dbus-launch
这将允许SSH会话关闭,但是感觉很混乱。有没有更好的解决方案?在没有dbus妨碍的情况下运行远程X11应用程序的正确方法是什么?