[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Посылка сигнала

Вы можете послать сигнал одному или нескольким процессам, используя
системный вызов kill(2). Аргументы:
sig - сигнал, который нужно послать. Если sig равен нулю, сигнал не
посылается, но выполняется проверка ошибок. Это можно использовать для
проверки допустимости значения pid.
pid определяет процесс(ы), которые должны получить сигнал.
Следующая таблица представляет собой список всех возможных значений
pid и их смысл.

   pid          получающий процесс (процессы)


    > 0       идентификатор процесса


       все процессы группы, к которой   принадлежит
   0   данный процесс


       все процессы, чей действительный ID  равен
  -1   эффективному ID посылающего процесса


 < -1  все процессы в группе процессов -pid


Группа процессов - это множество процессов с общим предком, называемым
лидером группы процессов. Любой процесс может стать лидером группы,
выполнив системные вызовы setsid(2) или setpgid(2). Примером группы
процессов являются все порожденные процессы и потомки вашего входного
интерпретатора shell (login shell). Когда вы нажимаете DELETE, все
процессы в этой группе получают сигнал SIGINT. Каждый из процессов в
этой группе может либо перехватить сигнал,  либо игнорировать его,
либо выполнить реакцию по умолчанию. Структура tty для управляющего
терминала вашего входного интерпретатора shell содержит значение
номера группы процессов. Таким образом драйвер устройства tty в ядре
узнает, каким процессам необходимо послать сигнал.
Вы имеете право посылать сигналы только процессам, соответствующим
вашему действительному идентификатору пользователя или эффективному
идентификатору пользователя. Суперпользователь может посылать сигналы
любому процессу.
Из Справочного руководства программиста по kill(2):
sigsend(2) является более гибким способом посылки сигналов процессам.
Пользователю рекомендуется использовать sigsend вместо kill.

                           ПОСЫЛКА СИГНАЛОВ
kill(2)

ИМЯ

     kill - посылает сигнал процессу или
     группе процессов.

ИСПОЛЬЗОВАНИЕ

     #include <sys/types.h>
     #include <signal.h>

     int kill (pid_t pid, int sig);

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

     успех - 0
     неуспех - -1 и errno установлена