与えられた kill.pl:
$SIG{INT} = sub { print "int\n" };
$SIG{TERM} = sub { print "term\n" };
$SIG{ABRT} = sub { print "abort\n" };
print "sleeping...\n";
sleep 60;
そして kill.com:
$ perl kill.pl
そして、次のように起動+中止します:
submit /log_file=kill.log kill.com
delete /entry=XXXXXX/noconfirm
シグナル ハンドラは呼び出されません。プロセスが強制終了されると、Linux でも同様のコードが機能します。
kill.log は次のように表示されます:
(19:58)$ perl kill.pl
sleeping...
%JBC-F-JOBABORT, job aborted during execution
vmsperl のドキュメントを読み、http://perldoc.perl.org/sigtrap.htmlからいくつかのことを試しました。これを行う方法はありますか?
私が電話した場合:
@kill.com
CTRL+C を実行すると、SIGINT は kill.pl によって処理されます。
私が興味を持っている可能性のあるすべてのシグナルをトラップするように perl に指示する方法があるかどうかを誰かが知っている場合に備えて、perl タグを追加しました。私の試みは次のとおりです。
$SIG{$_} = \&subroutine for keys(%SIG);