У меня есть простой Perl-скрипт, который просто выводит строку текста на стандартный вывод. Чего я хочу добиться, так это того, чтобы во время работы этого сценария, если я (или кто-то другой )давал этому процессу сигнал остановиться, я хочу, чтобы он перехватывал этот сигнал и завершался корректно. Код у меня выглядит следующим образом
#!/usr/bin/perl -w
$| = 1;
use sigtrap 'handler' => \&sigtrap, 'HUP', 'INT','ABRT','QUIT','TERM';
while(1){
print "Working...\n";
sleep(2);
}
sub sigtrap(){
print "Caught a signal\n";
exit(1);
}
Хотя это хорошо работает, когда я действительно нажимаю ctrl -c из командной строки, если я выдаю
kill -9 <pid>
Он просто умирает. Как мне заставить его выполнить что-то перед выходом? Моя общая идея состоит в том, чтобы использовать эту структуру, чтобы зафиксировать, когда этот сценарий умирает на сервере из-за перезагрузки сервера для обслуживания или сбоя.
Заранее спасибо