Detecting problems in a forked process

Jim Segrave jes at
Fri Dec 30 00:39:05 CET 2005

In article <mailman.2690.1135894161.18701.python-list at>,
James Colannino  <james at> wrote:
>Hey everyone.  I'm writing a small application in Python that uses 
>os.fork() to create a separate process in which another application is 
>run in the background.  The problem is that I need to know whether or 
>not that separate application managed to start and return from within 
>the parent appropriately.  Here's, roughly, a pseudo example of what I 
>want to do (I know the code itself is not correct):
>def function():
>    pid = os.fork()
>    if pid:
>         do parent stuff
>    else:
>         try:
>              execute the application
>         exeption:
>              somehow return -1 from within the parent process
>#try to start another application in the background from within a forked 
>if (function() == -1):
>    fail
>Is there a way that I can do this?  I thought, only for a *VERY* brief 
>second, about cheating my way around this with a global variable, but 
>then I realized that this wouldn't work due to the fact that I will have 
>multiple forks doing the same thing at the same time.  Thanks in advance :)


Have the child set it's exit code to indicate success or failure and
use one of the various os.wait functions in the parent to retrieve it.


create a pipe before forking and you can pass data back and forth
between the parent and child


look at one of the shared memory libraries

Jim Segrave           (jes at

More information about the Python-list mailing list