Linux поддерживает как надежные сигналы POSIX (далее «стандартные сигналы»), так и сигналы POSIX реального времени.
Стандартные сигналы
Linux поддерживает стандартные сигналы, перечисленные ниже. Некоторые номера сигналов зависят от архитектуры, как указано в столбце «Значение». (Там, где указаны три значения, первый из них обычно действителен для альфа и sparc, средний для i386, ppc и sh, а последний для mips.
A - означает, что в соответствующей архитектуре отсутствует сигнал.)
Записи в столбце «Действие» таблицы определяют действие по умолчанию для сигнала следующим образом:
Срок
Действие по умолчанию - это прервать процесс.
Ign
Действие по умолчанию - игнорировать сигнал.
ядро
Действие по умолчанию - это завершение процесса и ядро дампа.
Стоп
Действие по умолчанию - остановить процесс.
Сначала сигналы, описанные в исходном стандарте POSIX.1.
| Сигнал | Значение | действие | Комментарий |
| или смерти процесса контроля | |||
| SIGINT | 2 | Срок | Прерывание с клавиатуры |
| SIGQUIT | 3 | ядро | Выйти с клавиатуры |
| SIGILL | 4 | ядро | Незаконная инструкция |
| SIGABRT | 6 | ядро | Прерывать сигнал от выкинуть (3) |
| SIGFPE | 8 | ядро | Исключение с плавающей запятой |
| SIGKILL | 9 | Срок | Убить сигнал |
| SIGSEGV | 11 | ядро | Недопустимая ссылка на память |
| SIGPIPE | 13 | Срок | Сломанная труба: пишите на трубу без считывателей |
| SIGALRM | 14 | Срок | Сигнал таймера от тревога (2) |
| SIGTERM | 15 | Срок | Сигнал о завершении |
| SIGUSR1 | 30,10,16 | Срок | Пользовательский сигнал 1 |
| SIGUSR2 | 31,12,17 | Срок | Пользовательский сигнал 2 |
| SIGCHLD | 20,17,18 | Ign | Ребенок прекратил или прекратил |
| SIGCONT | 19,18,25 | Продолжить, если остановить | |
| SIGSTOP | 17,19,23 | Стоп | Остановить процесс |
| SIGTSTP | 18,20,24 | Стоп | Остановить на tty |
| SIGTTIN | 21,21,26 | Стоп | tty для фонового процесса |
| SIGTTOU | 22,22,27 | Стоп | вывод tty для фонового процесса |
СигналыSIGKILL а такжеSIGSTOP не могут быть пойманы, заблокированы или проигнорированы.
Затем сигналы не соответствуют стандарту POSIX.1, но описаны в SUSv2 и SUSv3 / POSIX 1003.1-2001.
| Сигнал | Значение | действие | Комментарий |
| SIGPOLL | Срок | Загрязняющее событие (Sys V). Синоним SIGIO | |
| SIGPROF | 27,27,29 | Срок | Таймер профайла истек |
| SIGSYS | 12,-,12 | ядро | Плохой аргумент для обычной (SVID) |
| SIGTRAP | 5 | ядро | Ловушка трассировки / прерывания |
| SIGURG | 16,23,21 | Ign | Срочное условие на разъем (4.2 BSD) |
| SIGVTALRM | 26,26,28 | Срок | Виртуальный будильник (4.2 BSD) |
| SIGXCPU | 24,24,30 | ядро | Превышен лимит времени процессора (4.2 BSD) |
| SIGXFSZ | 25,25,31 | ядро | Предел размера файла превышен (4.2 BSD) |
До и включая Linux 2.2 поведение по умолчанию дляSIGSYS, SIGXCPU, SIGXFSZ, и (на архитектурах, отличных от SPARC и MIPS)SIGBUS было прекращение процесса (без дампа ядра). (В некоторых других Unices действие по умолчанию дляSIGXCPU а такжеSIGXFSZ заключается в прекращении процесса без основного дампа.) Linux 2.4 соответствует требованиям POSIX 1003.1-2001 для этих сигналов, завершая процесс с дампом ядра.
Затем следуют различные другие сигналы.
| Сигнал | Значение | действие | Комментарий |
| SIGEMT | 7,-,7 | Срок | |
| SIGSTKFLT | -,16,- | Срок | Ошибка стека на сопроцессоре (не используется) |
| SIGIO | 23,29,22 | Срок | Теперь возможен ввод-вывод (4.2 BSD) |
| SIGCLD | -,-,18 | Ign | Синоним SIGCHLD |
| SIGPWR | 29,30,19 | Срок | Сбой питания (система V) |
| SIGINFO | 29,-,- | Синоним SIGPWR | |
| SIGLOST | -,-,- | Срок | Блокировка файла потеряна |
| SIGWINCH | 28,28,20 | Ign | Сигнал изменения размера окна (4.3 BSD, Солнце) |
| SIGUNUSED | -,31,- | Срок | Неиспользуемый сигнал (будет SIGSYS) |
(Сигнал 29SIGINFO / SIGPWR на альфа, ноSIGLOST на sparc.)
SIGEMT не указан в POSIX 1003.1-2001, но никогда не появляется в большинстве других Unices, где его действие по умолчанию обычно завершает процесс с дампом ядра.
SIGPWR (который не указан в POSIX 1003.1-2001) обычно игнорируется по умолчанию в тех других Unices, где он появляется.
SIGIO (который не указан в POSIX 1003.1-2001) по умолчанию игнорируется несколькими другими Unices.
Сигналы в реальном времени
Linux поддерживает сигналы в реальном времени, как это первоначально было определено в POSIX.4 в режиме реального времени (и теперь включено в POSIX 1003.1-2001). Linux поддерживает 32 сигнала в реальном времени, пронумерованных от 32 (SIGRTMIN) до 63 (SIGRTMAX). (Программы всегда должны ссылаться на сигналы в реальном времени с использованием обозначенийSIGRTMIN+ n, так как диапазон номеров сигналов в реальном времени зависит от Unices.)
В отличие от стандартных сигналов сигналы в реальном времени не имеют предопределенных значений: весь набор сигналов в реальном времени может использоваться для целей приложения. (Обратите внимание, однако, что реализация LinuxThreads использует первые три сигнала в реальном времени.)
Действие по умолчанию для необработанного сигнала реального времени - это прекращение процесса приема.
Сигналы в реальном времени отличаются следующим:
- Несколько экземпляров сигналов в реальном времени могут быть поставлены в очередь. Напротив, если несколько экземпляров стандартного сигнала доставляются, пока этот сигнал заблокирован, тогда очередь помещается только в один экземпляр.
- Если сигнал отправляется с использованиемsigqueue(2), сопровождающее значение (целое или указательное) может быть отправлено с сигналом. Если процесс приема устанавливает обработчик для этого сигнала, используяsa_sigaction пометитьsigaction(2), то он может получить эти данные через si_value поле siginfo_t структура передана как второй аргумент обработчику. Кроме того, вкусный а также si_uid поля этой структуры могут использоваться для получения идентификатора PID и реального пользователя процесса, посылающего сигнал.
- Сигналы в реальном времени передаются в гарантированном порядке. Несколько сигналов в реальном времени того же типа доставляются в том порядке, в котором они были отправлены. Если разные сигналы в реальном времени отправляются в процесс, они доставляются, начиная с сигнала с наименьшим номером. (То есть, сигналы с наименьшим номером имеют наивысший приоритет.)
Если для процесса ожидаются как стандартные, так и сигналы в реальном времени, POSIX оставляет его неуказанным, который доставляется первым. Linux, как и многие другие реализации, придает приоритет стандартным сигналам в этом случае.
Согласно POSIX, реализация должна разрешить по меньшей мере _POSIX_SIGQUEUE_MAX (32) сигналы в реальном времени быть поставленными в очередь на процесс. Однако, вместо того, чтобы устанавливать ограничение для каждого процесса, Linux налагает общесистемное ограничение на количество очередей в реальном времени для всех процессов.
Этот лимит можно просмотреть (и с привилегией) изменить с помощью / Труды / SYS / ядро / rtsig-макс файл. Связанный файл, / Труды / SYS / ядро / rtsig-макс , можно использовать, чтобы узнать, сколько сигналов в реальном времени находится в очереди.
В СООТВЕТСТВИИ С
POSIX.1
Важный: Использовать человек команда ( % человек ), чтобы увидеть, как команда используется на вашем конкретном компьютере.




