Thanks a lot. It does exactly what I expected and it's very simple oripel a écrit :
> Module 'subprocess' may be a better fit for you than fork+exec. > Here's an example with a signal handler > (1) use subprocess, don't fork and exec > (2) maybe this will help: > > --- > import signal, subprocess > > # define the signal handler > def logsignal(signum, frame): > print "Caught signal" > > # register the signal handler for SIGCHLD > signal.signal(signal.SIGCHLD, logsignal) > > # run the subprocess in the background > subprocess.Popen(["sleep", "3"]) > > # Do more stuff > --- > > The signal handler will be called when the child process ends. Just > register your own handler. > > You only need to register the handler once. > If you need this for a single run only, or need different behavior for > different subprocesses, have your signal handler re-register the old > handler (see the docs for module 'signal'). > > A note about the example: if you run it as is, the parent process will > end before the child process does. Add a call to 'os.wait()' to have it > wait for the child. In your GUI you probably won't want it. > > Hope this helps. > > awalter1 wrote: > > Hi, > > I develop a graphical user interface (with pyGTK) where a click on a > > button shall launch a program P in background. I want to get the end of > > this program P but I don't want that my HMI be freezed while P is > > running. > > I try to use fork examplesI found on the web, but it seems to not run > > as expected. > > I am not familiar with these techniques in unix as well as python. > > But I suppose that my needs are usual, despite that I don't find > > anything on the web ... > > Is someone can give me a standard way to call a background program, > > wait its end, with an IHM still active ? > > > > Thank a lot for any idea. -- http://mail.python.org/mailman/listinfo/python-list