版权所有 © 2014 tutorialspoint
#include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig);
int kill(pid_t pid, int sig);
如果pid为正数,则信号sig将发送到pid。
如果pid等于 0,则sig将发送到当前进程的进程组中的每个进程。
如果pid等于 -1,则sig将发送到调用进程有权发送信号的每个进程,但进程 1 (init) 除外,但请参见下文。
如果pid小于 -1,则sig将发送到进程组-pid中的每个进程。
如果sig为 0,则不会发送任何信号,但仍会执行错误检查。
要使进程有权发送信号,它必须具有特权(在 Linux 下:具有CAP_KILL功能),或者发送进程的真实或有效用户 ID 必须等于目标进程的真实或已保存的 set-user-ID。对于 SIGCONT,当发送进程和接收进程属于同一个会话时就足够了。
POSIX.1-2001 要求kill(-1,sig)将sig发送到当前进程可以向其发送信号的所有进程,但一些实现定义的系统进程除外。Linux 允许进程向自身发送信号,但在 Linux 上,kill(-1,sig)调用不会向当前进程发送信号。
POSIX.1-2001 要求如果进程向自身发送信号,并且发送线程未阻止该信号,并且没有其他线程将其取消阻止或在sigwait()中等待它,则在kill()之前,必须至少将一个未阻止的信号传递给发送线程。
_exit (2)
killpg (2)
signal (2)
sigqueue (2)
tkill (2)
广告