How to Force exiting from program/script

Diez B. Roggisch deets at nospam.web.de
Wed Jul 15 17:39:01 EDT 2009


Alex schrieb:
> hi at all,
>  I have made a script with a while loop and I want that after 30
> seconds the program stop and exit . But the code like this doesn't
> run:
> In the Console I can see work so that function is correctly called...
> 
> #Function to exit
> def exit():
>     print "work"
>     raise SystemExit()
> t = threading.Timer(30.0, exit)
> t.start()
> 
> # Loop
> while True:
> ...many lines....
> 

This works for me:

import threading
import time

def work():
     while True:
         pass



t = threading.Thread(target=work)
t.setDaemon(True)
t.start()

time.sleep(10)
raise SystemExit


The trick is to raise the SystemExit in the main-thread.

Diez



More information about the Python-list mailing list