http://qs321.pair.com?node_id=11111523


in reply to Signal to a sleeping Perl program

What OS is it running in? I gladly forgot most about Autosys after quitting $job - 1.

The following runs in Linux and reacts to signals as expected:

#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; local $SIG{USR1} = sub { say STDERR "Signal 1 caught."; alarm 0; }; local $SIG{USR2} = sub { say STDERR "Bye!"; exit }; my $sum = 0; while (1) { $sum += $_ for 1 .. 100; say $sum; say STDERR scalar localtime, " Sleeping..."; sleep 10; say STDERR scalar localtime, " Ready!"; }

A sample session:

▏~ $ 11111522.pl &
[1] 28265
5050
Fri Jan 17 15:28:04 2020 Sleeping...
Fri Jan 17 15:28:14 2020 Ready!
10100
Fri Jan 17 15:28:14 2020 Sleeping...
▏~ $ kill -USR1 28265
Signal 1 caught.
Fri Jan 17 15:28:17 2020 Ready!
15150
Fri Jan 17 15:28:17 2020 Sleeping...
▏~ $ kill -USR2 28265
Bye!
[1]+  Done                    11111522.pl
▏~ $

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]

Replies are listed 'Best First'.
Re^2: Signal to a sleeping Perl program
by LanX (Saint) on Jan 17, 2020 at 14:49 UTC
    > I gladly forgot most about Autosys after quitting $job - 1

    Thank G*d you didn't write $job-- ! OO

    ... you wouldn't like the implications ... ;-)

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice