killpg()

Updated: April 19, 2023

Send a signal to a process group

Synopsis:

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

int killpg( pid_t pgrp, 
            int sig );

Arguments:

pid
The ID of the process group that you want to send a signal to.
sig
Zero, or the signal that you want to send. For a complete list of signals, see POSIX and QNX Neutrino signals in the documentation for SignalAction().

If the signal terminates a process, the cleanup of the terminated process occurs by default at the priority of the thread that sent the signal. As a QNX Neutrino extension, if you OR the SIG_TERMER_NOINHERIT flag (defined in <signal.h>) into sig, the cleanup occurs at the priority of the thread that received the signal.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The killpg() function sends the signal sig to the process group specified by pgrp. If sig is zero, no signal is sent, but pgrp is still checked for validity.

If pgrp is greater than 1, killpg (pgrp, sig) is equivalent to kill (−pgrp, sig).

Returns:

Zero, or -1 if an error occurs (errno is set).

Errors:

EAGAIN
Insufficient system resources are available to deliver the signal.
EINVAL
The signal sig is invalid or not supported.
EPERM
The process doesn't have permission to send this signal to any receiving process.
ESRCH
No process group can be found corresponding to the specified pgrp, or pgrp is less than or equal to 1.

Classification:

POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes