Hi Simon, On Thu, Apr 23, 2009 at 15:05 +1000, Simon wrote: > The core problem here appears to be that when the receive thread exits > (because the ssh session has terminated), the main thread which is > running the remote_exec is effectively orphaned. If the users remote > exec task doesn't explicitly handle this, the main thread will stay open > indefinitely. > > The attached patch corrects this by running the receive thread as the > main thread and the remote_exec as a child daemon thread.
thanks for your investigations and patch! When I run your example script with your patch and immediately do a "ps aux" afterwards i still see the subprocess but it dies after around 10 seconds. Do you also see this behaviour? I'd like py.execnet remain able to remotely invoke GUI applications or other apps which need the main thread for their event loop. So I am wondering if there is a different way to achieve the same result of a clean shutdown. I just created a branch here: http://bitbucket.org/hpk42/py-shutdown/ and intend to first to write some tests. Please feel free to follow and contribute. cheers, holger > Simon > > On 21/04/2009, at 11:25 , Simon 5kycsae02-at-sneakemail.com |py-dev| > wrote: > >> This actually looks like an execnet issue, or maybe I'm not quite >> understanding how this should work. >> >> If I run the following code, I get a bunch of stuff left over. Aside >> from the ssh and shell instances, the main problem appears to be the >> python exec instance on the remote machine (in this example >> 'localhost'). If this process is killed, everything else seems to sort >> itself out. >> >> Calling the exit() method of the gateway doesn't seem to help. Nor >> does calling the close() method on the channel instance. >> >> ======================================= >> cmd = """ >> while True: >> pass >> """ >> >> import py >> g=py.execnet.SshGateway("localhost") >> c=g.remote_exec(cmd) >> ======================================= >> >> Simon > > > _______________________________________________ > py-dev mailing list > py-dev@codespeak.net > http://codespeak.net/mailman/listinfo/py-dev -- Metaprogramming, Python, Testing: http://tetamap.wordpress.com Python, PyPy, pytest contracting: http://merlinux.eu _______________________________________________ py-dev mailing list py-dev@codespeak.net http://codespeak.net/mailman/listinfo/py-dev