|KILL(2)||System Calls Manual||KILL(2)|
pid, int sig);
kill() function sends the signal given by sig to pid, a process or a group of processes. sig may be one of the signals specified in sigaction(2) or it may be 0, in which case error checking is performed but no signal is actually sent. This can be used to check the validity of pid.
For a process to have permission to send a signal to a process
designated by pid, the real or effective user ID of
the receiving process must match that of the sending process or the user
must have appropriate privileges (such as given by a set-user-ID program or
the user is the superuser). A single exception is the signal
SIGCONT, which may always be sent to any process
with the same session ID as the caller.
If the value of pid causes
sig to be sent to the calling process, either
sig or at least one pending unblocked signal will be
kill() returns unless
sig is blocked in the calling thread,
sig is unblocked in another thread, or another thread
is waiting for sig in
Setuid and setgid processes are dealt with slightly differently.
For the non-root user, to prevent attacks against such processes, some
signal deliveries are not permitted and return the error
EPERM. The following signals are allowed through to
this class of processes:
kill() will fail and no signal will be sent if:
kill() function conforms to IEEE Std 1003.1-2008 (“POSIX.1”).
kill() system call first appeared in Version 3 AT&T UNIX. The sig argument was introduced in Version 4 AT&T UNIX.
|May 6, 2017||OpenBSD-current|