The script waits for the executed command to complete (which blocks while waiting for the grid job to finish.)
So it's semantically equivalent (at least at this level) with "run something and grab it's output and return code when it finishes."
The voodoo of the control process that this script is executing and it's relationship to the grid service is entirely blackbox to the dispatcher.
The other wrinkle is that there are occasional business-level failures of the jobs. I'm not expected to clean up any more than I can from those. But I don't want to take the thread pool route because of the possibility of polluting the dispatch loop.
The more articles and chapters of books I read the more it seems like the $SIG{CHLD} = sub {$zombies++;} then add a reaper function to the while(1) loop, per Camel chapter 16 is the way to go.
The docs to wait and waitpid are the kind of things you (read: I) have to read 20 or 30 times, saying "wait, what?" each time, then go to lunch while it soaks in.
In reply to Re^4: double fork trick vs sig chld wait
by Voronich
in thread double fork trick vs sig chld wait
by Voronich
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |