W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
發(fā)送信號到進程
kill [-s sigspec | -n signum | -sigspec] pid | jobspec ...
kill -l [sigspec]
-s sig 信號名稱。
-n sig 信號名稱對應的數(shù)字。
-l 列出信號名稱。如果在該選項后提供了數(shù)字那么假設它是信號名稱對應的數(shù)字。
-L 等價于-l選項。
pid:進程ID
jobspec:作業(yè)標識符
返回狀態(tài)為成功除非給出了非法選項、執(zhí)行出現(xiàn)錯誤。
[user2@pc] kill -l 9
KILL
# 列出所有信號名稱:
[user2@pc] kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
# 下面是常用的信號。
# 只有第9種信號(SIGKILL)才可以無條件終止進程,其他信號進程都有權(quán)利忽略。
HUP 1 終端掛斷
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
KILL 9 強制終止
TERM 15 終止
CONT 18 繼續(xù)(與STOP相反,fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)
# 以下發(fā)送KILL信號的形式等價。當然還有更多的等價形式,在此不一一列舉了。
[user2@pc] kill -s SIGKILL PID
[user2@pc] kill -s KILL PID
[user2@pc] kill -n 9 PID
[user2@pc] kill -9 PID
[user2@pc] sleep 90 &
[1] 178420
# 終止作業(yè)標識符為1的作業(yè)。
[user2@pc] kill -9 %1
[user2@pc] jobs -l
[1]+ 178420 KILLED ssh 192.168.1.4
[user2@pc] sleep 90 &
[1] 181357
# 發(fā)送停止信號。
[user2@pc] kill -s STOP 181357
[user2@pc] jobs -l
[1]+ 181537 Stopped (signal) sleep 90
# 發(fā)送繼續(xù)信號。
[user2@pc] kill -s CONT 181357
[user2@pc] jobs -l
[1]+ 181537 Running sleep 90 &
kill [-signal|-s signal|-p] [-q value] [-a] [--] pid|name...
kill -l [number] | -L
-s, --signal signal 要發(fā)送的信號,可能是信號名稱或信號對應的數(shù)字。
-l, --list [number] 打印信號名稱或轉(zhuǎn)換給定數(shù)字到信號名稱。信號名稱可參考文件(/usr/include/linux/signal.h)。
-L, --table 和'-l'選項類似,但是輸出信號名稱以及信號對應的數(shù)字。
-a, --all 不要限制“命令名到pid”的轉(zhuǎn)換為具有與當前進程相同的UID的進程。
-p, --pid 打印目標進程的PID而不發(fā)送信號。
--verbose 打印信號以及接收信號的PID。
-q, --queue value 使用sigqueue(3)而不是kill(2)。參數(shù)value是信號對應的數(shù)字。
如果接收進程已為此信號安裝了處理程序?qū)A_SIGINFO標記為sigaction(2),則可以獲取
該數(shù)據(jù)通過siginfo_t結(jié)構(gòu)的si_sigval字段。
--help 顯示幫助信息并退出。
--version 顯示版本信息并退出。
接收信號的進程列表可以是PID以及name的混合組成。
PID:每一個PID可以是以下四種情況之一:
狀態(tài) | 說明 |
---|---|
n | 當n大于0時,PID為n的進程接收信號。 |
0 | 當前進程組中的所有進程均接收信號。 |
-1 | PID大于1的所有進程均接收信號。 |
-n | 當n大于1時,進程組n中的所有進程接收信號。當給出了一個參數(shù)的形式為“-n”,想要讓它表示一個進程組,那么必須首先指定一個信號,或參數(shù)前必須有一個“--”選項,否則它將被視為發(fā)送的信號。 |
name:使用此名稱調(diào)用的所有進程將接收信號。
> sleep 20 &
# 列出對應的PID。
> kill -p sleep
23021
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: