【linux】kill命令信號總結

kill 命令的詳細總結,除了kill -9 還有不少node

1.終止進程的通常作法

在運行程序時要對某些程序進程進行終止操做,能夠使用kill命令和對應的pid號進行處理,這種方法對於後臺運行的程序特別有用:
ps -a 列出全部進程:python

PID TTY          TIME CMD
 2946 pts/20   00:13:11 python
 3523 pts/27   00:00:00 ps

或者使用管道來獲取對應應用程序的進程號:
ps | grep python
2946 pts/20 00:13:55 pythonlinux

隨後就能夠使用kill來關閉這一程序了:
kill -9 2946git

可是,kill命令除了-9外還有不少的用途:
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]github

2.kill 的sigspec的詳細內容

在終端中輸入kill -l會看到除了-9外還有不少其餘的信號:後端

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是當即結束進程的信號不能被阻塞處理,而安全結束進程的信號能夠使用15,這個信號能夠被阻塞處理。
更詳細的Linux 標準信號能夠在這裏找到。
最先定義的經常使用信號:安全

Signal     Value     Action   Comment
   ──────────────────────────────────────────────────────────────────────
   SIGHUP        1       Term    Hangup detected on controlling terminal
                                 or death of controlling process 終端控制信號
   SIGINT        2       Term    Interrupt from keyboard  鍵盤終止信號
   SIGQUIT       3       Core    Quit from keyboard   鍵盤quit信號
   SIGILL        4       Core    Illegal Instruction       
   SIGABRT       6       Core    Abort signal from abort(3)   
   SIGFPE        8       Core    Floating point exception  浮點數錯誤
   SIGKILL       9       Term    Kill signal    結束信號
   SIGSEGV      11       Core    Invalid memory reference  無效內存,訪問錯誤
   SIGPIPE      13       Term    Broken pipe: write to pipe with no   
                                 readers
   SIGALRM      14       Term    Timer signal from alarm(2)   時鐘信號
   SIGTERM      15       Term    Termination signal              終止信號
   SIGUSR1   30,10,16    Term    User-defined signal 1     
   SIGUSR2   31,12,17    Term    User-defined signal 2  
   SIGCHLD   20,17,18    Ign     Child stopped or terminated    子進程結束信號
   SIGCONT   19,18,25    Cont    Continue if stopped
   SIGSTOP   17,19,23    Stop    Stop process        進程終止
   SIGTSTP   18,20,24    Stop    Stop typed at terminal    
   SIGTTIN   21,21,26    Stop    Terminal input for background process
   SIGTTOU   22,22,27    Stop    Terminal output for background process    後端進程信號

ref:
https://linode.com/docs/tools-reference/tools/use-killall-and-kill-to-stop-processes-on-linux/
https://www.zhihu.com/question/23747655
https://www.geeksforgeeks.org/kill-command-in-linux-with-examples/
https://www.linux.com/learn/intro-to-linux/2017/5/how-kill-process-command-line
https://stackoverflow.com/questions/1624691/linux-kill-background-task/1624730
https://blog.csdn.net/king16304/article/details/52211206
https://blog.csdn.net/Shawei_/article/details/81288938ui

相關文章
相關標籤/搜索