Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>On most Unix platforms, the <code>CHLD</code> (sometimes also known as <code>CLD</code>) signal has special behavior with respect to a value of <code>'IGNORE'</code>. Setting <code>$SIG{CHLD}</code> to <code>'IGNORE'</code> on such a platform has the effect of not creating zombie processes when the parent process fails to <code>wait()</code> on its child processes (i.e. child processes are automatically reaped). Calling <code>wait()</code> with <code>$SIG{CHLD}</code> set to <code>'IGNORE'</code> usually returns <code>-1</code> on such platforms.<br> <em>Excerpted from <a href="http://perl.active-venture.com/pod/perlipc-signal.html" rel="nofollow">http://perl.active-venture.com/pod/perlipc-signal.html</a></em></p> <p>Basically what is happening is that somewhere the <code>CHLD</code> signal has been set to <code>IGNORE</code> <em>probably by sqlldr</em>. When you attempt to check on the status of the child process you receive the <code>-1</code> which is sometimes referred to as <code>ECHILD</code>. This occurs because the information about the completion status of the child process has been discarded due to the ignoring of the <code>CHLD</code> signal. By setting <code>$SIG{CHLD} = 'DEFAULT';</code> you are indicating that the CHLD signal should be handled by the DEFAULT handler and not ignored.</p> <p>I do not know why the <code>CHLD</code> signal is being ignored when the script is executed from sudo user versus being executed directly from your user id.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload