SIGALRM problem
Mike Driscoll
kyosohma at gmail.com
Mon Oct 13 13:30:59 EDT 2008
On Oct 13, 11:45 am, Paul Rubin <http://phr...@NOSPAM.invalid> wrote:
> I'm trying to run a command on a remote host, something like:
>
> result = os.popen('ssh otherhost mycommand').read()
>
> It is possible that the other host is down, in which case the ssh
> command hangs, so I want my script to time out if this happens:
>
> def timeout(*x):
> raise IOError, 'timeout'
> signal(SIGALRM, timeout)
> alarm(20)
>
> result = os.popen('ssh otherhost mycommand').read()
>
> I would expect the above to raise IOError if the ssh doesn't return
> within 20 seconds, but it seems to hang when the other host is down,
> until eventually the tcp connection times out after something like 5
> minutes (which is much longer than I want to wait).
>
> Anyone know if os.popen somehow pre-empts the alarm signal? If it
> does, I'd consider that a bug.
>
> Thanks
> --Paul
Using some Google-Fu, I found this post:
http://mail.python.org/pipermail/python-list/2003-August/217530.html
It's old, but it looks ok...
Mike
More information about the Python-list
mailing list