Операционная система 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) процесс наследует диспозицию сигналов от своего родителя. Однако при вызове