ОБЗОР
#include <signal.h>int killpg(int pgrp, int sig);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
- killpg():
- _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
ОПИСАНИЕ
killpg() отправляет сигнал sig группе процессов pgrp. Список сигналов можно найти в signal(7).Если значение pgrp равно 0, то killpg() отправляет сигнал вызывающей группе процессов. (В POSIX: если значение pgrp меньше или равно 1, поведение не определено.)
Чтобы процесс мог посылать сигнал, он должен быть привилегированным (в Linux: иметь мандат CAP_KILL), либо реальный или эффективный идентификатор пользователя посылающего процесса должен быть равен реальному или сохранённому идентификатору пользователя процесса, которому отправляется сигнал. Для сигнала SIGCONT посылающий и получающий процессы должны принадлежать одному сеансу.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.ОШИБКИ
- EINVAL
- В sig задан неправильный номер сигнала.
- EPERM
- Процесс не имеет достаточно прав для отправки сигнала ни одному из группы процессов-получателей.
- ESRCH
- В группе процессов pgrp нет ни одного процесса.
- ESRCH
- Номер группы процессов равен 0, но процесс-отправитель не входит ни в какую группу процессов.