Quoth Jim Segrave <[EMAIL PROTECTED]>: | In article <[EMAIL PROTECTED]>, | James Colannino <[EMAIL PROTECTED]> 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. ... |> 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 :)
If your thought there had continued for another second or two, you probably would have wondered whether variables are shared between forks. (Actually they are, but only as an optimization - changes are not shared.) | options: | | 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. This is the simplest, as long as it's easy to wait long enough to reliably catch the failure case. | create a pipe before forking and you can pass data back and forth | between the parent and child If you want the parent to wait for errors right up to the successful execve(), and then continue, you can set the 'close on exec' flag on the pipe write end file descriptor and make sure no process holds this open but the child fork. See the subprocess module for example code (or just use the subprocess module, if it's supported in the deployed Python version.) Donn Cave, [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list