del behavior 2

"Martin v. Löwis" martin at v.loewis.de
Wed Jan 7 23:23:14 CET 2009


> Thanks for the responses.  What I mean is when a python process is
> interrupted and does not get a chance to clean everything up then what
> is a good way to do so?  For instance, I have a script that uses child
> ptys to facilitate ssh connections (I'm using pxssh).  When I ^C the
> python process I am left with the child processes running and the ssh
> connections open.  Naturally I run out of ttys if this happens too
> much, which I have had happen.  So if python does not get a chance to
> take care of those, what is a good way to do so?  Does a try/finally
> or a with statement address that?  Thanks!

That's strange. When the parent process terminates, the tty master
should get closed, causing the slave to be closed as well, in addition
to sending a SIGHUP signal to the child, which ssh should interpret
as terminating.

Perhaps the problem is that the master socket *doesn't* get closed?
I see that pexpect closes all file descriptors in the child before
invoking exec. Could it be that you are starting addition child
processes which inherit the master socket?

Regards,
Martin



More information about the Python-list mailing list