Hi everyone, Here I have a simple program which starts a thread and the thread use Popen to execute a shell cmd which needs a long time. I want to stop the thread once I type "ctrl+C" (KeyboardInterrupt). But in fact this program enters a dead loop. Can anyone tell me what is wrong?
Alex from subprocess import * import threading import time class TestThread(threading.Thread): def run(self): try: while True: p=Popen("for (( i = 0 ; i <= 100000; i++ )); do echo hello; done", shell=True,stdin=PIPE,stdout=PIPE,stderr=PIPE,close_fds=True) print p.stdout.readlines() print p.stderr.readlines() except KeyboardInterrupt: print "got ex" print "leave..." a=TestThread() a.start() try: a.join() except: print "gone" -- http://mail.python.org/mailman/listinfo/python-list