Информатика и вычислительная техника :: Операционные системы и среды
Сигналы
Сигналы обеспечивают простой метод прерывания работы процессов. Сигналы используются в основном для обработки исключительных ситуаций. Процесс может определять действия выполняемые при поступлении сигнала, блокировать сигналы, посылать сигналы другим процессам.
Существует более двадцати различных сигналов.
Основные:
- SIGCHLD - сигнал о завершении дочернего процесса.
- SIGHUP - сигнал освобождения линии. Посылается всем процессам, подключенным к управляющему терминалу при отключении терминала. Многие демоны при получении данного сигнала заново просматривают файлы конфигурации и перезапускаются.
- SIGINT - сигнал посылается всем процессам сеанса, связанного с терминалом, при нажатии пользователем клавиши прерывания (CTRL-C).
- SIGTERM - сигнал приводит к немедленному прекращению работы получившего сигнал процесса.
- SIGKILL - сигнал приводит к немедленному прекращению работы получившего сигнал процесса.
- В отличие от SIGTERM процесс не может блокировать и перехватывать данный сигнал.
- SIGSEGV - сигнал посылается процессу, если тот пытается обратиться к неверному адресу памяти.
- SIGSTOP - сигнал приводящий к остановке процесса. Для отправки сигнала SIGSTOP активному процессу текущего терминала можно воспользоваться комбинацией клавиш (CTRL-Z).
- SIGCONT - сигнал возобновляющий работу остановленного процесса.
- SIGUSR1,SIGUSR2 - сигналы определяемые пользователем.
Для того, чтобы отправить процессу сигнал можно использовать команду kill. Для того,
чтобы процесс мог отправить сигнал другому процессу необходимо чтобы эффективные идентификаторы пользователя у посылающего процесса и у процесса получателя совпадали. Процессы с эффективным идентификатором пользователя равным нулю могут посылать сигналы любым процессам.
|
|