http://www.perlmonks.org?node_id=996293

ladyscifi has asked for the wisdom of the Perl Monks concerning the following question:

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.

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?

Or am I just misunderstanding something? I'm running under Windows 7, fyi. below is the test signal handling 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; }

and what I'm running to try to signal it:

Perl\bin\perl.exe -e "$cnt = kill SIGINT, 14184; print $cnt"

Replies are listed 'Best First'.
Re: Send signal to perl script
by afoken (Chancellor) on Sep 29, 2012 at 07:03 UTC
Re: Send signal to perl script
by Anonymous Monk on Sep 29, 2012 at 00:25 UTC