kill 命令的詳細總結,除了kill -9 還有不少node
在運行程序時要對某些程序進程進行終止操做,能夠使用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 python
linux
隨後就能夠使用kill來關閉這一程序了:
kill -9 2946
git
可是,kill命令除了-9外還有不少的用途:
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
github
在終端中輸入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