Основы операционной системы UNIX

       

Перехват и обработка сигналов


В программах командного интерпретатора можно перехватывать и обрабатывать сигналы. Для этого используется команда trap, устанавливающая с момента выполнения обработчик в виде последовательности команд (одним словом) для всех перечисленных сигналов. Эта команда имеет следующий синтаксис:

<оператор trap> ::=

trap <последовательность команд> <список сигналов>

<список сигналов> ::=

<сигнал> {<пробелы> <сигнал>}

Рассмотрим пример реализации команды nohup, позволяющей запустить программу так, чтобы она продолжала работать при выключении терминала:

$ cat nohup # nohup: no kill and hangup trap "" 1 15 if test -t 2>&1 then echo "Redirect stdout to 'nohup.out'" exec nice -5 $* >>nohup.out 2>&1 else exec nice -5 $* 2>&1 fi $



Содержание раздела