版權所有 © 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)
廣告