wait()'ing for a child process to terminate is correct. But expecting wait() to return -1 on success is causing your block not to execute at all because wait() can also return the PID of the process it found just terminated. E.g. from the wait documentation:
wait: Behaves like wait(2) on your system: it waits for a child process to terminate and returns the pid of the deceased process, or -1 if there are no child processes.So you just need to remove that == -1 check.
That said, wait() waits for ANY child process including those by a system command. Why not being explicit and wait for YOUR OWN child with waitpid($pid, 0)?
bw, bliako
Edit: kcott made the same diagnosis a few minutes earlier, though I read it after posting.
In reply to Re: Multiprocess - child process cannot be finished successfully
by bliako
in thread Multiprocess - child process cannot be finished successfully
by wonderG
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |