A problem was reported by a customer. They were getting a failure and in the logs it reported     error → waitpid failed 'Reason: No child processes'     The “No child processes” error came from waitpid() after using   fork/spawn to launch a utility to load data into a data base.      Upon  detailed investigation it appears it is possible that some other  process that the user is running has changed the default handler for SIGCHLD - possibly the shell (e.g. bash!) used to launch our server processes. If  the signal handler is set to SIG_IGN then when a process is started  using fork()/exec() the return code from the process is NOT returned and waitpid() cannot retrieve the response code.        The  most likely reason for "No child processes" error from waitpid() is  that the signal handler for child processes (SIGCHLD) is not set to  SIG_DFL. This should not be possible however  it seems that on Linux a process run in the shell (or maybe a shell  process) can set it...
Random thoughts and idle musings