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 -- http://mail.python.org/mailman/listinfo/python-list