kill(kill())

kill(Linux命令提示符)

kill()一般指本詞條

本詞條是多義詞,共3個義項
更多義項 ▼ 收起列表 ▲

kill送出一個特定的信號 (signal)給行程id為pid的行程根據該信號而做特定的動作,若沒有指定,預設是送出終止 (TERM)的信號。

基本介紹

  • 外文名:kill
  • 使用許可權:所有使用者
  • 實質:linux命令提示符
使用方式,一般範例,

使用方式

kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]
-s (signal): 其中常用的訊號有 HUP (1),KILL (9),TERM (15),分別代表著重跑,砍掉,結束; 詳細的信號可以用 kill -l (見下結果,可用數字帶入)
-p : 印出pid,並不送出信號
-l (signal): 列出所有可用的信號名稱
這個就是kill -l的查詢結果:
1) SIGHUP  2) SIGINT  3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR111) SIGSEGV12) SIGUSR2
13) SIGPIPE14) SIGALRM15) SIGTERM16) SIGSTKFLT
17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP
21) SIGTTIN22) SIGTTOU23) SIGURG 24) SIGXCPU
25) SIGXFSZ26) SIGVTALRM 27) SIGPROF28) 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

一般範例

將pid為323的執行緒砍掉 (kill):
kill -9 323
將pid為456的執行緒重跑 (restart):
kill -HUP 456
一般來講,查詢PID的命令是
ps -ef | grep yum
(表示查詢的是yum的PID,根據查詢的東西不同而異)。
舉一個實際的例子:
比方說,Fedora的線上更新命令yum鎖鎖住了,常見的提示是
Existing lock /var/run/yum.pid: another copy is running as pid 19698.
Another app is currently holding the yum lock; waiting for it to exit…
Another app is currently holding the yum lock; waiting for it to exit…
Another app is currently holding the yum lock; waiting for it to exit…
Another app is currently holding the yum lock; waiting for it to exit…
Another app is currently holding the yum lock; waiting for it to exit…
…….
這裡就沒必要使用ps命令了,因為已經知道PID就是19698這個值了,因此不用在查詢。
這時就要使用kill將19698的進程殺死。其中的19698就是PID。
所以在命令行內輸入:
kill -9 19698
就能成功的殺死這個進程。
kill的改進用法如下:
一、把ps的查詢結果通過管道給grep查找包含特定字元串的進程。管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。
$ ps -ef | grep firefox
smx 1827 1 4 11:38 ? 00:27:33 /usr/lib/firefox-3.6.18/firefox-bin
smx 12029 1824 0 21:54 pts/0 00:00:00 grep –color=auto firefox
這次就清爽了。然後就是
$kill -s 9 1827
還是嫌打字多?
二、使用pgrep
一看到pgrep首先會想到什麼?沒錯,grep!pgrep的p表明了這個命令是專門用於進程查詢的grep。
$ pgrep firefox
1827
看到了什麼?沒錯火狐的PID,接下來又要打字了:
$kill -s 9 1827

相關詞條

熱門詞條

聯絡我們