kill(2)kill(2)Namekill - send signal to a process
The system call sends the signal sig to a process specified by the
process number pid. The sig can be a signal specified in a call or it
can be 0. If the sig is 0, error checking is performed, but a signal
is not sent. This call can be used to check the validity of pid.
The sending and receiving processes must have the same effective user
ID, otherwise this call is restricted to the superuser with the excep‐
tion of the signal SIGCONT. The signal SIGCONT can always be sent to a
child or grandchild of the current process.
If the process number is 0, the signal is sent to all other processes
in the sender's process group.
If the process number is negative but not -1, the signal is sent to all
processes whose process-group-id is equal to the absolute value of the
The above two options are variants of
If the process number is -1, and the user is the superuser, the signal
is broadcast for all processes except to system processes and the
process sending the signal.
Processes may send signals to themselves.
When your program is compiled in the System V or POSIX environment, a
signal is sent if either the real or effective uid of the sending
process matches the real or saved-set-uid (as described in ) of the
receiving process. In addition, any process can use a pid of -1, and
the signal is sent to all processes subject to these permission checks.
In POSIX mode, the pid argument is of type pid_t.
Upon successful completion, a value of 0 is returned. Otherwise, a
value of -1 is returned, and is set to indicate the error.
The system call fails under the following conditions:
[EINVAL] The sig is not a valid signal number.
[EPERM] The sending process is not the superuser, and its effec‐
tive user ID does not match the effective user ID of the
[ESRCH] No process can be found corresponding to that specified
See Alsoexecve(2), getpgrp(2), getpid(2), killpg(2), sigvec(2), pause(3)kill(2)