Основные сигналы
Информация об основных сигналах представлена в табл. 18.
Таблица 18. Основные сигналы
Сигнал | Стандартная обработка | Значение |
SIGTERM 15 |
Завершение процесса | Стандартный сигнал, посылаемый для остановки процесса. |
SIGHUP 1 |
Завершение процесса | Отключился терминал (или закрыто терминальное окно). Сигнал посылается всем не фоновым процессам, связанным с соответствующей терминальной линией. |
SIGKILL 9 |
Завершение процесса | Не перехватываемый сигнал, позволяющий завершить любой процесс. |
SIGILL 4 |
Завершение процесса и сброс образа памяти | На центральный процессор была послана запрещенная инструкция. Это могло быть следствием недопустимого перехода в машинном коде программы, например, попытки выполнить строку данных. |
SIGTRAP 5 |
Завершение процесса и сброс образа памяти | Была установлена ловушка точки прерывания процесса. Этим управляет системный вызов ptrace, который полезен для отладки. |
SIGFPE 8 |
Завершение процесса и сброс образа памяти | Была попытка выполнить запрещенную арифметическую операцию, например, взятие логарифма отрицательного числа или деление на 0. |
SIGBUS 10 |
Завершение процесса и сброс образа памяти | Ошибка на шине ввода-вывода. Обычно это является результатом попытки выполнить чтение или запись вне границ памяти программы. |
SIGSEGV 11 |
Завершение процесса и сброс образа памяти | Это нарушение сегментации - проклятие разработчиков программ! Оно означает, что вы попытались получить доступ к сегменту памяти запрещенным образом. Может быть, это было присваивание значения части сегмента кода или чтение из нулевого адреса. |
SIGPIPE 13 |
Завершение процесса | Программа попыталась выполнить чтение или запись в программный канал, другой конец которого уже завершил работу. Этот сигнал помогает завершить работу конвейера, когда одна из его команд дала сбой. |
SIGALRM 14 |
Завершение процесса | Программист может установить будильник, чтобы позволить вам в определенный момент времени выполнить какое-нибудь действие. |
SIGCHLD 18 |
Игнорируется | Сначала это был сигнал завершения работы дочернего процесса, но сейчас он означает изменение состояния дочернего процесса. |
SIGTSTP 24 |
Остановка процесса | Это запрос от терминала на остановку процесса. Посылка этого сигнала процессу происходит при нажатии комбинации клавиш Ctrl-Z. |
SIGCONT 25 |
Игнорируется | Этот сигнал указывает процессу на возобновление его работы. Процессу посылается либо команда fg, либо bg, а командный интерпретатор выполняет внутренний системный вызов wait для привилегированного процесса, либо не выполняет его для фонового процесса. |
Детальная информация о сигналах представлена на страницах справочного руководства signal.
Процесс с помощью системного вызова signal() может задать нестандартный обработчик любого сигнала, кроме SIGKILL (9).