The command is arsload which is a document ingestion utility for IBM DB2 OnDemand Content Manager. I am forcing an error condition which causes this situation. When I run the same command on the command line I get a message telling the pid was stopped. When running my script I am sing top and see the parent and child threads in 'stop' state. If I do not send the SIGCONT signal nothing happens. The processes remain in the 'stop' state. If I send the signal just to the child, the parent remains stopped. I have to signal the parent as well.
As for the parent, the while loop at the end of the script should output every 5 seconds to show it is waiting. Nothing is output even if I signal the child to continue which ends the child.
I tried SIG{STOP} = sub {print STDERR "$$ stopped\n";}; in the child and nothing was output. I then tried it in the parent and nothing was output.
Maybe I am being mislead by the stop state thinking it is the stop signal? For debug purposes only, I have been toying with the idea of putting in a signal handler for almost every signal.
In reply to Re^2: Stopped child hangs parent
by jafoba
in thread Stopped child hangs parent
by jafoba
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |