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>