man 7 signal
Это удобная ненормативная справочная страница проекта man-страниц Linux , на которую вы часто хотите посмотреть информацию о сигналах Linux.
Версия 3.22 упоминает интересные вещи, такие как:
Сигналы SIGKILL и SIGSTOP не могут быть пойманы, заблокированы или проигнорированы.
и содержит таблицу:
Signal Value Action Comment
----------------------------------------------------------------------
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no
readers
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
SIGTSTP 18,20,24 Stop Stop typed at tty
SIGTTIN 21,21,26 Stop tty input for background process
SIGTTOU 22,22,27 Stop tty output for background process
, который суммирует сигнал Action
, который отличает, например, SIGQUIT от напр .: SIGINT от SIGQUIT, так как SIGQUIT имеет действие Core и SIGINT Term.
и действия документированы в одном документе:
The entries in the "Action" column of the tables below specify the default disposition for each signal, as follows:
Term Default action is to terminate the process.
Ign Default action is to ignore the signal.
Core Default action is to terminate the process and dump core (see core(5)).
Stop Default action is to stop the process.
Cont Default action is to continue the process if it is currently stopped.
Некоторые сигналы соответствуют ANSI C, а другие нет
Значительная разница в том, что:
- SIGINT и SIGTERM соответствуют стандарту ANSI C, поэтому более переносимы
- SIGQUIT и SIGKILL не
Они описаны в разделе "7.14 Обработка сигналов" проекта C99 N1256 :
- SIGINT получение интерактивного сигнала внимания
- SIGTERM запрос на завершение, отправленный в программу
, что делает SIGINT хорошим кандидатом на интерактивные Ctrl + C.
POSIX 7
POSIX 7 документирует сигналы с заголовком signal.h
: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html
На этой странице также есть следующая интересная таблица, в которой упоминаются некоторые вещи, которые мы уже видели в man 7 signal
:
Signal Default Action Description
SIGABRT A Process abort signal.
SIGALRM T Alarm clock.
SIGBUS A Access to an undefined portion of a memory object.
SIGCHLD I Child process terminated, stopped,
SIGCONT C Continue executing, if stopped.
SIGFPE A Erroneous arithmetic operation.
SIGHUP T Hangup.
SIGILL A Illegal instruction.
SIGINT T Terminal interrupt signal.
SIGKILL T Kill (cannot be caught or ignored).
SIGPIPE T Write on a pipe with no one to read it.
SIGQUIT A Terminal quit signal.
SIGSEGV A Invalid memory reference.
SIGSTOP S Stop executing (cannot be caught or ignored).
SIGTERM T Termination signal.
SIGTSTP S Terminal stop signal.
SIGTTIN S Background process attempting read.
SIGTTOU S Background process attempting write.
SIGUSR1 T User-defined signal 1.
SIGUSR2 T User-defined signal 2.
SIGTRAP A Trace/breakpoint trap.
SIGURG I High bandwidth data is available at a socket.
SIGXCPU A CPU time limit exceeded.
SIGXFSZ A File size limit exceeded.