Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
KILL(2)                    Linux Programmer's Manual                   KILL(2)

NAME
       kill - send signal to a process

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

       int kill(pid_t pid, int sig);

DESCRIPTION
       The kill system call can be used to send any signal to any process
       group or process.

       If pid is positive, then signal sig is sent to pid.

       If pid equals 0, then sig is sent to every process in the process group
       of the current process.

       If pid equals -1, then sig is sent to every process except for process
       1 (init), but see below.

       If pid is less than -1, then sig is sent to every process in the
       process group -pid.

       If sig is 0, then no signal is sent, but error checking is still
       performed.

RETURN VALUE
       On success, zero is returned.  On error, -1 is returned, and errno is
       set appropriately.

ERRORS
       EINVAL An invalid signal was specified.

       ESRCH  The pid or process group does not exist.  Note that an existing
              process might be a zombie, a process which already committed
              termination, but has not yet been wait()ed for.

       EPERM  The process does not have permission to send the signal to any
              of the receiving processes.  For a process to have permission to
              send a signal to process pid it must either have root
              privileges, or the real or effective user ID of the sending
              process must equal the real or saved set-user-ID of the
              receiving process.  In the case of SIGCONT it suffices when the
              sending and receiving processes belong to the same session.

NOTES
       It is impossible to send a signal to task number one, the init process,
       for which it has not installed a signal handler.  This is done to
       assure the system is not brought down accidentally.

       POSIX 1003.1-2001 requires that kill(-1,sig) send sig to all processes
       that the current process may send signals to, except possibly for some
       implementation-defined system processes.  Linux allows a process to
       signal itself, but on Linux the call kill(-1,sig) does not signal the
       current process.

LINUX HISTORY
       Across different kernel versions, Linux has enforced different rules
       for the permissions required for an unprivileged process to send a
       signal to another process.  In kernels 1.0 to 1.2.2, a signal could be
       sent if the effective user ID of the sender matched that of the
       receiver, or the real user ID of the sender matched that of the
       receiver.  From kernel 1.2.3 until 1.3.77, a signal could be sent if
       the effective user ID of the sender matched either the real or
       effective user ID of the receiver.  The current rules, which conform to
       POSIX 1003.1-2001, were adopted in kernel 1.3.78.

CONFORMING TO
       SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3, POSIX 1003.1-2001

SEE ALSO
       _exit(2), exit(3), signal(2), signal(7)

Linux 2.5.0                       2001-12-18                           KILL(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | NOTES | LINUX HISTORY | CONFORMING TO | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=kill&sektion=2&manpath=Red+Hat+Linux%2fi386+9>

home | help