Операционная система UNIX - страница 73
Таблица 2.18. Сигналы
Название | Действие по умолчанию | Значение |
---|---|---|
>SIGABRT | Завершить+core | Сигнал отправляется, если процесс вызывает системный вызов abort(2). |
>SIGALRM | Завершить | Сигнал отправляется, когда срабатывает таймер, ранее установленный с помощью системных вызовов alarm(2) или setitimer(2). |
>SIGBUS | Завершить+core | Сигнал свидетельствует о некоторой аппаратной ошибке. Обычно этот сигнал отправляется при обращении к допустимому виртуальному адресу, для которого отсутствует соответствующая физическая страница. Другой случай генерации этого сигнала упоминался при обсуждении файлов, отображаемых в память (сигнал отправляется процессу при попытке обращения к странице виртуальной памяти, лежащей за пределами файла). |
>SIGCHLD | Игнорировать | Сигнал, посылаемый родительскому процессу при завершении выполнения его потомка. |
>SIGEGV | Завершить+core | Сигнал свидетельствует о попытке обращения к недопустимому адресу или к области памяти, для которой у процесса недостаточно привилегий. |
>SIGFPE | Завершить+core | Сигнал свидетельствует о возникновении особых ситуаций, таких как деление на 0 или переполнение операции с плавающей точкой. |
>SIGHUP | Завершить | Сигнал посылается лидеру сеанса, связанному с управляющим терминалом, когда ядро обнаруживает, что терминал отсоединился (потеря линии). Сигнал также посылается всем процессам текущей группы при завершении выполнения лидера. Этот сигнал иногда используется в качестве простейшего средства межпроцессного взаимодействия. В частности, он применяется для сообщения демонам о необходимости обновить конфигурационную информацию. Причина выбора именно сигнала >SIGHUP заключается в том, что демон по определению не имеет управляющего терминала и, соответственно, обычно не получает этого сигнала. |
>SIGILL | Завершить+core | Сигнал посылается ядром, если процесс попытался выполнить недопустимую инструкцию. |
>SIGINT | Завершить | Сигнал посылается ядром всем процессам текущей группы при нажатии клавиши прерывания (<Del> или <Ctrl>+<C>). |
>SIGKILL | Завершить | Сигнал, при получении которого выполнение процесса завершается. Этот сигнал нельзя ни перехватить, ни игнорировать. |
>SIGPIPE | Завершить | Сигнал посылается при попытке записи в канал или сокет, получатель данных которого завершил выполнение (закрыл соответствующий дескриптор). |
>SIGPOLL | Завершить | Сигнал отправляется при наступлении определенного события для устройства, которое является опрашиваемым. |
>SIGPWR | Игнорировать | Сигнал генерируется при угрозе потери питания. Обычно он отправляется, когда питание системы переключается на источник бесперебойного питания (UPS). |
>SIGQUIT | Завершить+core | Сигнал посылается ядром всем процессам текущей группы при нажатии клавиш <Ctrl>+<\>. |
>SIGSTOP | Остановить | Сигнал отправляется всем процессам текущей группы при нажатии пользователем клавиш |
>SIGSYS | Завершить+core | Сигнал отправляется ядром при попытке недопустимого системного вызова. |
>SIGTERM | Завершить | Сигнал обычно представляет своего рода предупреждение, что процесс вскоре будет уничтожен. Этот сигнал позволяет процессу соответствующим образом "подготовиться к смерти" — удалить временные файлы, завершить необходимые транзакции и т.д. Команда kill(1) по умолчанию отправляет именно этот сигнал. |
>SIGTTIN | Остановить | Сигнал генерируется ядром (драйвером терминала) при попытке процесса фоновой группы осуществить чтение с управляющего терминала. |
>SIGTTOU | Остановить | Сигнал генерируется ядром (драйвером терминала) при попытке процесса фоновой группы осуществить запись на управляющий терминал. |
>SIGUSR1 | Завершить | Сигнал предназначен для прикладных задач как простейшее средство межпроцессного взаимодействия. |
>SIGUSR2 | Завершить | Сигнал предназначен для прикладных задач как простейшее средство межпроцессного взаимодействия. |
Простейшим интерфейсом к сигналам UNIX является устаревшая, но по-прежнему поддерживаемая в большинстве систем функция signal(3C). Эта функция позволяет изменить диспозицию сигнала, которая по умолчанию устанавливается ядром UNIX. Порожденный вызовом fork(2) процесс наследует диспозицию сигналов от своего родителя. Однако при вызове