kill - функция, с помощью которой посылается сигнал процессу
НАЗВАНИЕkill - функция, с помощью которой посылается сигнал
процессу
СИНТАКСИС
#include
#include
int kill(pid_t pid, int sig);
ОПИСАНИЕ
Системный вызов kill используется для того, чтобы послать
любой сигнал любому процессу или группе процессов.
Если pid больше 0, то сигнал sig посылается процессу pid.
Если pid равен 0, то сигнал sig посылается всем процессам
текущей группы.
Если pid равен -1, то сигнал sig посылается всем
процессам, кроме процесса 1 (init). Также смотрите
замечания ниже.
Если pid меньше -1, то сигнал sig посылается всем
процессам группы -pid.
Если sig равен 0, то сигнал не посылается, но выполняется
проверка на возникновение ошибок в процессе.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При удачном завершении вызова возвращаемое значение равно
0. При ошибке оно равно -1, а переменной errno
присваивается соответствующее значение.
КОДЫ ОШИБОК
EINVAL Задан неправильный тип сигнала.
ESRCH Процесс или группа не существуют. Заметьте, что
существующий процесс может быть зомби-процессом,
который уже подал запрос на завершение работы, но
еще не прошел через функцию wait().
EPERM У процесса нет достаточных прав для того, чтобы
послать сигналы одному из процессов-получателей.
Для того, чтобы процесс мог послать сигнал процессу
pid, он должен либо иметь привилегии root, либо его
реальный или эффективный идентификатор пользователя
должен быть равен реальному или сохраненному при
помощи set-user-ID идентификатору пользователя
процесса-получателя. В случае с SIGCONT, для
посылки и приема сигнала процессу достаточно быть
частью этой же сессии.
ЗАМЕЧАНИЯ
Невозможно послать сигнал процессу номер 1 (init), потому
что у него нет обработчика сигналов. Это сделано для того,
чтобы не было случайных сбоев системы.
POSIX 1003.1-2001 требует, чтобы kill(-1,sig) посылал sig
всем процессам, которым текущий процесс может послать
сигнал, кроме, возможно, системных процессов, специфичных
для текущей реализации. Linux позволяет процессу послать
сигнал самому себе, однако kill(-1,sig) не посылает сигнал
текущему процессу.
СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3, POSIX 1003.1-2001