存在X Forward程序时,退出后SSH未终止


9

通过SSH运行X程序后,SSH在外壳退出后不会终止(必须使用例如CtrlC杀死它)。

我的猜测是,尽管X程序已经退出,但仍然存在一些“连接”(未释放)。我现在发现的例外是gtk-demoacroread

有人知道原因吗?ssh {,d}配置是否有问题?


1
您可以自己测试。使用-v运行ssh,它将报告已打开和关闭的X11连接。
凯尔·琼斯

@KyleJones THX,似乎是问题所在(两个“连接”在C-c按下后释放)。
yuyichao 2012年

我在任何X11窗口的SLES11上都遇到了同样的问题。您是如何追溯到dbus的?
尼尔斯2012年

您可以简单地检查进程的运行状态(如果没有其他活动会话)。我使用systemd并在sshd(PAM设置)中启用了它,因此ssh会话中的所有进程都在同一cgroup中,这使得检查起来非常容易。~~
yuyichao 2012年

Answers:


5

启动X程序可能会启动一个后台进程,该进程在您关闭该程序时不会终止(或者该程序本身无法正确终止)。请参阅此处以了解发生的情况。

要解决此问题,您可以尝试找出哪些进程仍在运行,或者在通过SSH登录时阻止它们启动,或者在注销之前将其杀死。当然,一旦注销,您当然也可以终止SSH连接。


K,问题在于dbus(gconf)进程仍在运行。(感谢systemd-cgls~~)(我尝试killall -KILL过程序本身以为它可能在之前进行了一些后台进程,但事实并非如此。)那么有什么办法做得好吗?(例如自动杀死dbus(gconf))THX
yuyichao 2012年

1
您可以在中放置killall dbus或类似的内容.logout,但这可能会使其他内容混乱(例如,当您在本地登录时)。
Lars Kotthoff'2

嗯,似乎我需要手动执行此操作(即没有直接的选择)。至少我已经在使用kill-session=1,希望systemd可以告诉我哪个进程是正确的(即不终止其他会话中的进程。)~~~ THX
yuyichao 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.