| .\" Copyright (c) 1980, 1991 Regents of the University of California. |
| .\" All rights reserved. |
| .\" |
| .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" 3. All advertising materials mentioning features or use of this software |
| .\" must display the following acknowledgement: |
| .\" This product includes software developed by the University of |
| .\" California, Berkeley and its contributors. |
| .\" 4. Neither the name of the University nor the names of its contributors |
| .\" may be used to endorse or promote products derived from this software |
| .\" without specific prior written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" %%%LICENSE_END |
| .\" |
| .\" @(#)killpg.2 6.5 (Berkeley) 3/10/91 |
| .\" |
| .\" Modified Fri Jul 23 21:55:01 1993 by Rik Faith <faith@cs.unc.edu> |
| .\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond <esr@thyrsus.com> |
| .\" Modified 2004-06-16 by Michael Kerrisk <mtk.manpages@gmail.com> |
| .\" Added notes on CAP_KILL |
| .\" Modified 2004-06-21 by aeb |
| .\" |
| .TH KILLPG 3 2020-06-09 "Linux" "Linux Programmer's Manual" |
| .SH NAME |
| killpg \- send signal to a process group |
| .SH SYNOPSIS |
| .B #include <signal.h> |
| .PP |
| .BI "int killpg(int " pgrp ", int " sig ); |
| .PP |
| .in -4n |
| Feature Test Macro Requirements for glibc (see |
| .BR feature_test_macros (7)): |
| .in |
| .ad l |
| .TP 4 |
| .BR killpg (): |
| _XOPEN_SOURCE\ >=\ 500 |
| .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED |
| || /* Since glibc 2.19: */ _DEFAULT_SOURCE |
| || /* Glibc versions <= 2.19: */ _BSD_SOURCE |
| .ad |
| .SH DESCRIPTION |
| .BR killpg () |
| sends the signal |
| .I sig |
| to the process group |
| .IR pgrp . |
| See |
| .BR signal (7) |
| for a list of signals. |
| .PP |
| If |
| .I pgrp |
| is 0, |
| .BR killpg () |
| sends the signal to the calling process's process group. |
| (POSIX says: if |
| .I pgrp |
| is less than or equal to 1, the behavior is undefined.) |
| .PP |
| For the permissions required to send a signal to another process, see |
| .BR kill (2). |
| .SH RETURN VALUE |
| On success, zero is returned. |
| On error, \-1 is returned, and |
| .I errno |
| is set appropriately. |
| .SH ERRORS |
| .TP |
| .B EINVAL |
| .I sig |
| is not a valid signal number. |
| .TP |
| .B EPERM |
| The process does not have permission to send the signal |
| to any of the target processes. |
| For the required permissions, see |
| .BR kill (2). |
| .TP |
| .B ESRCH |
| No process can be found in the process group specified by |
| .IR pgrp . |
| .TP |
| .B ESRCH |
| The process group was given as 0 but the sending process does not |
| have a process group. |
| .SH CONFORMING TO |
| POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD |
| .RB ( killpg () |
| first appeared in 4BSD). |
| .SH NOTES |
| There are various differences between the permission checking |
| in BSD-type systems and System\ V-type systems. |
| See the POSIX rationale for |
| .BR kill (3p). |
| A difference not mentioned by POSIX concerns the return |
| value |
| .BR EPERM : |
| BSD documents that no signal is sent and |
| .B EPERM |
| returned when the permission check failed for at least one target process, |
| while POSIX documents |
| .B EPERM |
| only when the permission check failed for all target processes. |
| .SS C library/kernel differences |
| On Linux, |
| .BR killpg () |
| is implemented as a library function that makes the call |
| .IR "kill(-pgrp,\ sig)" . |
| .SH SEE ALSO |
| .BR getpgrp (2), |
| .BR kill (2), |
| .BR signal (2), |
| .BR capabilities (7), |
| .BR credentials (7) |