kill - Send a signal to a process or to a group of processes
#include <signal.h>
int kill(
pid_t process,
int signal );
Application developers may want to specify an #include
statement for <sys/types.h> before the one for <signal.h>
if programs are being developed for multiple platforms.
The additional #include statement is not required on Tru64
UNIX systems or by ISO or XSH specifications, but may be
on other vendors' systems that conform to these standards.
Interfaces documented on this reference page conform to
industry standards as follows:
kill(): XSH4.0, XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Specifies the process or group of processes. Specifies
the signal. If the signal parameter is a value of 0 (the
null signal), error checking is performed but no signal is
sent. This can be used to check the validity of the process
parameter.
The kill() function sends the signal specified by the signal
parameter to the process or group of processes specified
by the process parameter.
To send a signal to another process, at least one of the
following must be true: The real or the saved set-user-ID
of the sending process matches the real or effective user
ID of the receiving process. The process is trying to
send the SIGCONT signal to one of its session's processes.
The process has root privileges.
Processes can send signals to themselves.
Sending a signal does not imply that the operation is successful.
All signal operations must pass the access checks
prescribed by each enforced access control policy on the
system.
If the process parameter is greater than 0 (zero), the
signal specified by the signal parameter is sent to the
process that has a process ID equal to the value of the
process parameter.
If the process parameter is equal to 0 (zero), the signal
specified by the signal parameter is sent to all of the
processes (other than system processes) whose process
group ID is equal to the process group ID of the sender.
If the process parameter is equal to -1, the signal specified
by the signal parameter is sent to all of the processes
other than system processes for which the process
has permission to send that signal. For example, if the
effective user ID of the sender has root privileges, the
signal specified by the signal parameter is sent to all of
the processes other than system processes.
If the process parameter is negative but not -1, the signal
specified by the signal parameter is sent to all of
the processes that have a process group ID equal to the
absolute value of the process parameter.
[Tru64 UNIX] In a TruCluster Server cluster, if the process
parameter is greater than 0 (zero), the signal specified
by the signal parameter is sent to the process that
has a process ID equal to the value of the process parameter,
even if that process is on another cluster member.
The process ID is guaranteed to be unique across the cluster.
[Tru64 UNIX] In a TruCluster Server cluster, if the process
parameter is equal to -1, the signal specified by the
signal parameter is sent to all non-system processes (on
the current cluster member) for which the process has permission
to send that signal.
[Tru64 UNIX] In a TruCluster Server cluster, if the process
parameter is negative but not -1, the signal specified
by the signal parameter is sent to all of the processes
that have a process group ID equal to the absolute
value of the process parameter, even if those processes
are on another cluster member.
Some applications and scripts depend on the process ID of
the init program being 1 (one): do not depend on it.
Instead, use standard methods, such as the ps and grep
commands, to obtain all process IDs.
Upon successful completion, the kill() function returns a
value of 0 (zero). Otherwise, a value of -1 is returned
and errno is set to indicate the error.
The kill() function sets errno to the specified values for
the following conditions: The signal parameter is not a
valid signal number.
[Tru64 UNIX] The signal parameter is SIGKILL,
SIGSTOP, SIGTSTP or SIGCONT and the process parameter
is the process ID of the init program. No process
or process group can be found corresponding to
that specified by the process parameter. The real
or saved user ID does not match the real or effective
user ID of the receiving process, the calling
process does not have appropriate privilege, and
the process is not sending a SIGCONT signal to one
of its session's processes. [Tru64 UNIX] The
calling process does not have appropriate privileges.
Functions: getpid(2), killpg(2), setpgid(2), sigaction(2),
sigvec(2), raise(3)
Standards: standards(5)
kill(2)
[ Back ] |