ssh -X, how to force termination
When I start evolution (mail user agent) in a "ssh -X" session (i.e.,
with X forwarding), the ssh session does not terminate even I have
terminated both evolution and the shell.
I find that there is a process "dbus-launch" running, that keeps a
connection to the remote X server through the ssh forwarding. This
process has parent process 1, and no attached terminal. It is very
cumbersome to track it down and kill it before I exit the shell,
especially if there are other dbus-launch instances not related to my
Is there any easy way?
I have tried "~.", but that makes my local terminal hang, and I have
to open another local terminal to kill the ssh process.
I have tried "~&", but that leaves the ssh process running in the
background for ever.
I also tried
local> ssh -X -l <user> <host> dbus-lauch --exit-with-session
but when I closed evolution, ssh still ran until I killed it.
However, this works reasonably well, if I only remember to do it that
local> ssh -X -l <user> <host>
remote> dbus-launch --exit-with-session evolution &
... # terminate evolution
I can probably write a script to handle the messy details. However, it
still feels strange that there is no way to tell the ssh client that I
want to terminate the connection including all X connections. Have I
Besides, should I report as a bug that evolution does not kill dbus-
launch on exit? (I could not even confirm that it is evo that starts
dbus-launch. I tried to run evolution under strace, but got a couple
of "PANIC" messages from strace about subprocesses exiting before
strace managed to attach (if that is what the messages meant).