KILLPG(3) | Library Functions Manual | KILLPG(3)

# NAME

`killpg` — send signal to a process group

# SYNOPSIS

`#include <signal.h>`

int
`killpg`(pid_t pgrp, int sig);

# DESCRIPTION

The `killpg`() function sends the signal sig to the process group pgrp. See sigaction(2) for a list of signals. If pgrp is 0, `killpg`() sends the signal to the sending process's process group.

The sending process and members of the process group must have the same effective user ID, or the sender must be the superuser. As a single special case the continue signal SIGCONT may be sent to any process with the same session ID as the caller.

# RETURN VALUES

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

# ERRORS

`killpg`() will fail and no signal will be sent if:

[`EINVAL`]
  sig is not a valid signal number.
[`ESRCH`]
  No process can be found in the process group specified by pgrp.
[`ESRCH`]
  The process group was given as 0 but the sending process does not have a process group.
[`EPERM`]
  The sending process is not the superuser and one or more of the target processes has an effective user ID different from that of the sending process.

# SEE ALSO

getpgrp(2), kill(2), sigaction(2)

# STANDARDS

The `killpg`() function conforms to the X/Open System Interfaces option of the IEEE Std 1003.1-2008 (“POSIX.1”) specification.

The handling of process group 0 is an extension to that standard.

# HISTORY

The `killpg`() function call appeared in 4.0BSD.

May 7, 2017 | Debian