Send a signal to a process or a group of processes
#include <sys/types.h> #include <signal.h> int kill( pid_t pid, int sig );
- The ID of the process or process group that you want to send a signal
If pid is: Then sig is sent to: > 0 The single process with that process ID 0 All processes that are in the same process group as the sending process < 0 Every process that's a member of the process group -pid
- Zero, or the signal that you want to send. For a complete list of signals, see POSIX signals in the documentation for SignalAction().
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The kill() function sends the signal sig to a process or group of processes specified by pid. If sig is zero, no signal is sent, but the pid is still checked for validity.
For a process to have permission to send a signal to a process, either:
- the real or effective user ID of the sending process must
match the real or effective user ID of the receiving process
- the calling process must have the PROCMGR_AID_SIGNAL ability enabled. For more information, see procmgr_ability() .
If the value of pid causes sig to be generated for the sending process, and if sig isn't blocked, either sig or at least one pending unblocked signal is delivered before the kill function returns.
This call doesn't block. However, in the network case, lower priority threads may run.
Zero, or -1 if an error occurs (errno is set).
- Insufficient system resources are available to deliver the signal.
- The sig is invalid.
- The process doesn't have permission to send this signal to any receiving process; procmgr_ability() .
- The given pid doesn't exist.
See sigprocmask() .