Перечень сигналов
В приведенной ниже таблице содержится перечень всех сигналов с указанием обрабатывается сигнал или игнорируется, а также действий, выполняемых по умолчанию при поступлении сигнала.
Сигнал | Обрабатывается | Действие по умолчанию | Описание |
Стандартные сигналы | |||
SIGABRT | да | Завершить процесс | Сигнал ненормального завершения, такой же, какой выдается функцией abort() |
SIGALARM | да | Завершить процесс | Сигнал истечения времени, такой же, какой выдается функцией alarm() |
SIGFPE** | да | Завершить процесс | Ошибочная арифметическая операция (целочисленная или с плавающей точкой), например, деление на 0 или операция, приводящая к переполнению |
SIGHUP | да | Завершить процесс | Гибель инициатора сессии, либо зависание на управляющем терминале |
SIGILL | да | Завершить процесс | Обнаружение аппаратной ошибки |
SIGINT | да | Завершить процесс | Интерактивный сигнал внимания () |
SIGKILL | да | Завершить процесс | Сигнал завершения (следует использовать только в чрезвычайных ситуациях) |
SIGPIPE | да | Завершить процесс | Попытка записи в канал при отсутствии процессов, читающих из него |
SIGOUIT | да | Завершить процесс | Интерактивный сигнал завершения |
SIGSEGV** | да | Завершить процесс | Обнаружение неправильной ссылки в памяти |
SIGTERM | да | Завершить процесс | Сигнал завершения |
SIGUSR1 | да | Завершить процесс | Зарезервирован как 1-й сигнал, определяемый приложением |
SIGUSR2 | да | Завершить процесс | Зарезервирован как 2-й сигнал, определяемый приложением |
Сигналы, управляющие работой процессов | |||
SIGHLD | да | Игнорировать сигнал | Завершить порожденный процесс |
SIGCONT | нет | Продолжить процесс | Продолжить, если данный процесс задержан задержки; игнориро вать сигнал, если этот процесс не задержан |
SIGSTOP* | нет | Приостановить процесс | Сигнал задержкки процесса |
SIGTSTP* | нет | Игнорировать сигнал | Не поддерживается в QNX |
SIGTTIN | нет | Игнорировать сигнал | Не поддерживается в QNX |
SIGTTOU | нет | Игнорировать сигнал | Не поддерживается в QNX |
Специальные сигналы QNX | |||
SIGBUS** | да | Завершить процесс | Указывает на ошибку четности в памяти (специальная интерпретация QNX) |
SIGDEV | да | Завершить процесс | Генерируется, когда в Администраторе устройств возникает важное и запрашиваемое событие |
SIGPWR | да | Завершить процесс | Мягкая перезагрузка по нажатию клавиш <CTRL> <ALT> <SHIFT> <DEL> или по выполнению утилиты shutdown |
Исторически оставшиеся сигналы UNIX | |||
SIGIOT*** | да | Завершить процесс | Команда IOT |
SIGSIS*** | да | Завершить процесс | Некорректный аргумент в системном вызове |
SIGWINCH*** | да | Завершить процесс | Смена окна |
SIGURG*** | да | Завершить процесс | Выполнение необходимого условия |
SIGPOLL*** | да | Завершить процесс | Выполнение выбранного события |
SIGEMT*** | да | Завершить процесс | Команда EMT (эмулятор внутреннего прерывания) |
SIGTRAP | да | Завершить процесс | Неподдерживаемое программное прерывание |
Условные обозначения:
* | обслуживающий процесс может "защитить" себя от этого сигнала посредством функции qnx_pflags(). Для этого обслуживающий процесс должен иметь уровень суперпользователя; |
** | процесс завершается в случае возникновения второго сбоя во время обработки процессом первого; |
*** | этот сигнал оставлен для исторической совместимости с некоторыми версиями системы UNIX, он не генерируется никакими компонентами системы QNX. |