# partially based upon code by BrowserUK from https://www.perlmonks.org/?node_id=629210 use strict; use Config; use FindBin; use File::Spec; my $log_fn = File::Spec->catfile($FindBin::Bin, "cleanup_handler_log.txt"); my $LOG; open $LOG, '>>', $log_fn or die "Failed to open log '$log_fn' for appending ($!)\n"; binmode $LOG; $LOG->autoflush(1); # disable buffering my @sigs = split ' ', $Config{ sig_name }; shift @sigs; print "SIGNALS: @sigs\n"; for ( @sigs ) { my $msg = "Signal $_ received\n"; $SIG{ $_ } = sub{ print $LOG $msg; warn $msg; }; } my $count; while( 1 ) { $count += 1 for 1.. 1e6; warn $count; sleep 3; }