Hi there,<div><br></div><div>I have this example code to illustrate a problem I am having with python3. It works fine with python 2.6 and 2.7 but does not with python 3.1.</div><div><br></div><div>Please, can someone tell me why or how to fix this example?</div>

<div><br></div><div><br></div><div><div>from __future__ import print_function</div><div>import os, subprocess, signal</div><div><br></div><div>def signal_handler( signum, frame ):</div><div><br></div><div>    print( "PID: %s" % pid )</div>

<div>    print( "Timed out! Process %s killed, max exec time (%ss) exceeded" % (pid, timeTol ) )</div><div>    os.kill( int( pid ), 15 )</div><div>    raise Exception( "Taking too long to finish... aborting!" )</div>

<div><br></div><div>if __name__ == '__main__':</div><div><br></div><div>    timeTol = 5</div><div><br></div><div>    cmd = 'find /'</div><div><br></div><div>    signal.signal(signal.SIGALRM, signal_handler)</div>

<div>    signal.alarm(timeTol)</div><div><br></div><div>    p = subprocess.Popen(cmd, shell=True, stderr = subprocess.STDOUT, stdout = subprocess.PIPE)</div><div>    pid = p.pid</div><div><br></div><div>    out = str( p.communicate()[0].decode() )</div>

<div>    print(out)</div><div><br></div><div><br></div><div>Many thanks,</div><div><br></div><div>Alan</div><br>-- <br>Alan Wilter S. da Silva, D.Sc. - CCPN Research Associate<br>Department of Biochemistry, University of Cambridge. <br>

80 Tennis Court Road, Cambridge CB2 1GA, UK.<br>>><a href="http://www.bio.cam.ac.uk/~awd28">http://www.bio.cam.ac.uk/~awd28</a><<<br>
</div>