天天看點

Linux下程序的“終結者”

Linux下程序的“終結者”

  指令名稱:kill

  使用權限:所有使用者

  使用方式:

  kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

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

  -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) 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

  一般範例:

  将 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...

  .......

  這裡就沒必要使用ps指令了,因為已經知道PID就是19698這個值了,是以不用在查詢。

  這時就要使用kill将19698的程序殺死。其中的19698就是PID。

  是以在指令行内輸入:

  kill -9 19698

  就能成功的殺死這個程序。

繼續閱讀