Ok: Here goes the code again and results:
from __future__ import print_function import os, subprocess, signal def signal_handler( signum, frame ): print( "PID: %s" % pid ) print( "Timed out! Process %s killed, max exec time (%ss) exceeded" % (pid, timeTol ) ) os.kill( int( pid ), 15 ) raise Exception( "Taking too long to finish... aborting!" ) if __name__ == '__main__': timeTol = 5 cmd = 'find /' signal.signal(signal.SIGALRM, signal_handler) signal.alarm(timeTol) p = subprocess.Popen(cmd, shell=True, stderr = subprocess.STDOUT, stdout = subprocess.PIPE) pid = p.pid out = str( p.communicate()[0].decode() ) print(out) ---------------------------------------------------- time python2.6 timout.py PID: 27644 Timed out! Process 27644 killed, max exec time (5s) exceeded Traceback (most recent call last): File "timout.py", line 23, in <module> out = str( p.communicate()[0].decode() ) File "/sw/lib/python2.6/subprocess.py", line 693, in communicate stdout = self.stdout.read() File "timout.py", line 9, in signal_handler raise Exception( "Taking too long to finish... aborting!" ) Exception: Taking too long to finish... aborting! python2.6 timout.py 0.10s user 0.47s system 11% cpu 5.113 total #### WORKED as expected #### ---------------------------------------------------- Now with python3.1: ---------------------------------------------------- time python3.1 timout.py PID: 27687 Timed out! Process 27687 killed, max exec time (5s) exceeded Traceback (most recent call last): File "timout.py", line 23, in <module> out = str( p.communicate()[0].decode() ) File "/sw/lib/python3.1/subprocess.py", line 719, in communicate stdout = self.stdout.read() File "timout.py", line 9, in signal_handler raise Exception( "Taking too long to finish... aborting!" ) Exception: Taking too long to finish... aborting! python3.1 timout.py 0.52s user 3.88s system 19% cpu 22.841 total #### It prints essentially the same thing with a *very* *big* difference it takes 22 seconds and actually the alarm only works when the whole task ('find /') is finished. ---------------------------------------------------- I hope it's better now. Thanks, Alan On Tue, Aug 3, 2010 at 08:42, rantingrick <rantingr...@gmail.com> wrote: > On Aug 3, 2:28 am, Chris Rebert <c...@rebertia.com> wrote: > > ---------- Forwarded message ---------- > > From: Alan <alanwil...@gmail.com> > > Date: Tue, Aug 3, 2010 at 12:25 AM > > Subject: Re: please, help with python 3.1 > > To: Chris Rebert <c...@rebertia.com> > > > > Sorry, > > I will explain. > > Well it looks like he forgot to post the traceback! > -- > http://mail.python.org/mailman/listinfo/python-list > -- Alan Wilter S. da Silva, D.Sc. - CCPN Research Associate Department of Biochemistry, University of Cambridge. 80 Tennis Court Road, Cambridge CB2 1GA, UK. >>http://www.bio.cam.ac.uk/~awd28<<
-- http://mail.python.org/mailman/listinfo/python-list