spawning a separate process

Peter Hansen peter at engcorp.com
Tue Apr 1 08:47:40 EST 2003


Mark Light wrote:
> 
>        I have a python program from which I wish to spawn an os.system call
> (a bash script) that may take several minutes to run - whilst the rest of
> the script carries on. I have tried using bits of code from books - but it
> never seem to work quite right

In addition to Pádraig's response, here's another possibility:

import threading
class RunInBackground(threading.Thread):
    def __init__(self, command):
        threading.Thread.__init__(self)
        self.command = command
        self.start()
        self.done = False

    def run(self):
        import os
        os.system(self.command)
        self.done = True

Then do something like:

bgThread = RunInBackground('/bin/bash mycommand')

Using the popen approach is no doubt better if you don't have
"special needs", but this might make it easier for you to 
extend the functionality if you decide you need more than what
you originally asked for.

-Peter




More information about the Python-list mailing list