ОБЗОР
#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, но процесс-отправитель не входит ни в какую группу процессов.