perlquestion
ladyscifi
<p>I'm attempting to send a signal to a perl script that is running in the background. When it is in the foreground, it handles SIGINT as expected. However, when it is in the background and I send the signal to the perl process, it ignores it.</p>
<p> As far as I can tell, the signals are being handled by the perl interpreter and not being passed on to the script. Is there a way to force perl to pass the signals on to the script?</p>
<p>
Or am I just misunderstanding something? I'm running under Windows 7, fyi. below is the test signal handling code:</p>
<code>
sub INT_handler {
print("Don't Interrupt!\n");
}
sub ABRT_handler {
print("awwww!\n");
exit 0;
}
$SIG{'INT'} = 'INT_handler';
$SIG{'ABRT'} = 'ABRT_handler';
print "My pid is $$ \n";
for ($x = 0; $x < 100; $x++) {
print("$x\n");
sleep 1;
}
</code>
<p>and what I'm running to try to signal it:</p>
<code>
Perl\bin\perl.exe -e "$cnt = kill SIGINT, 14184; print $cnt"
</code>