Monday, May 28, 2007, 9:46:12 PM, Udo wrote: > The shutdown script has always been a fire-and-forget script that did > not evaluate any return codes or output. The only change that landed > together with the VDR shutdown rewrite in 1.5.1 is that the script is > now called detached from VDR, so it can run in parallel and will not > terminate together with VDR. Some shutdown scripts may need to be adapted. > If you want to investigate: thread.c:SystemExec() is called with the new > parameter Detached=true. STDIN is redirected to /dev/null, STDOUT and > STDERR are same as VDR, all other FD's get closed as before. You can reproduce the problem pretty easy: If I use an 'empty' shutdown script that just starts with "#!/bin/sh" or bash or whatever, the script itself becomes a zombie. And if I use a script with just an empty line, "sh" becomes the zombie. So in either way, something is wrong and it can not be the script's fault. It would be helpful if someone could test this behavior. My assumption is that the problem occurs because of the missing wait call (if SystemExec is called 'detached'). I know, if VDR would wait in there, the script wouldn't run simultaneously. But if VDR never waits for the child's PID, the child's termination never gets handled and imho that's why the script remains as a zombie. waitpid( -1, &dummy, WNOHANG) called at some place later should do the trick. Or waitpid() explicitly for the child's PID, if we want to store the PID anywhere. -- Chris _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr