Какие (неперехваченные) сигналы приведут к прекращению выполнения программы Perl? - PullRequest
1 голос
/ 13 июня 2011

Какие сигналы приведут к прекращению работы Perl-программы, если их записи %SIG явно не заданы?

Ответы [ 3 ]

5 голосов
/ 13 июня 2011

Ответ зависит от платформы. Чтобы увидеть поведение каждого сигнала в вашей системе по умолчанию, загрузите модуль Signals::XSIG (вам не нужно его устанавливать) и запустите программу spike/analyze_default_signal_behavior.pl (без аргументов). Или просто скачайте и запустите скрипт из здесь .

Обратите внимание, что некоторые сигналы не могут быть перехвачены вашей программой, даже если вы установили обработчик %SIG. Это также зависит от системы, но обычно включает по крайней мере SIGKILL и SIGSTOP.

2 голосов
/ 13 июня 2011

Легче говорить о тех, кто не остановит вашу программу. На моей машине (RHEL) все, кроме FPE (исключение с плавающей запятой), CHLD (изменение дочернего статуса), CONT (продолжение процесса), URG (срочное условие для сокета) и WINCH (изменение размера окна), вызывает остановку программы Perl выполнение.

Четыре из этих сигналов не вызывают выхода из программы, но временно приводят к остановке выполнения программы: STOP (остановка, не блокируется), TSTP (остановка терминала) и TTIN (чтение фона из tty), TTOU (фоновое изображение) пиши в тты). Программа снова запустится, если получит CONT.

1 голос
/ 14 июня 2011

С man kill в Debian,

   Name     Num   Action    Description
   0          0   n/a       exit code indicates if a signal may be sent
   ALRM      14   exit
   HUP        1   exit
   INT        2   exit
   KILL       9   exit      cannot be blocked
   PIPE      13   exit
   POLL           exit
   PROF           exit
   TERM      15   exit
   USR1           exit
   USR2           exit
   VTALRM         exit
   STKFLT         exit      might not be implemented
   PWR            ignore    might exit on some systems
   WINCH          ignore
   CHLD           ignore
   URG            ignore
   TSTP           stop      might interact with the shell
   TTIN           stop      might interact with the shell
   TTOU           stop      might interact with the shell
   STOP           stop      cannot be blocked
   CONT           restart   continue if stopped, otherwise ignore
   ABRT       6   core
   FPE        8   core
   ILL        4   core
   QUIT       3   core
   SEGV      11   core
   TRAP       5   core
   SYS            core      might not be implemented
   EMT            core      might not be implemented
   BUS            core      core dump might fail
   XCPU           core      core dump might fail
   XFSZ           core      core dump might fail
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...