How can I kill a running thread when exiting from __main__

kyosohma at kyosohma at
Tue Apr 3 19:32:49 CEST 2007

On Apr 3, 12:21 pm, car... at wrote:
> Hi!
> I have the following problem: I have written a short Python server
> that creates an indefinite simulation thread that I want to kill when
> quitting (Ctrl-C) from Python. Googling around has not given me any
> hints on how to cleanly kill running threads before exiting. Any help
> is appreciated!
> Carl
> ### CODE EXTRACT ###
> import pythoncom
> class QueueThread( threading.Thread):
>     def __init__(self, command):
>         threading.Thread.__init__(self)
>         self.command = command
>     def run(self):
>         pythoncom.CoInitialize()
>         try:
>             object = Dispatch('application')
>             execute = getattr(object, 'Execute')
>             execute(self.command )
>         finally:
>             object = None
>             pythoncom.CoUnitialize()
> queuethread = QueueThread("queuehandler")
> queuethread.setDaemon(True)
> queuethread.start()
> ## How can I kill "queuethread" when exiting (Ctrl-C)?

If you can get the pid of the process you created, you should be able
to use the killProcName function that's included with the win32
package...if you're server is a Windows box. You should be able to use
the join() method if you don't set your thread to a Daemon.

This post talks about using the os module to kill a thread as well:

The wxPython wiki has one of the best threading examples I've seen:


More information about the Python-list mailing list