_Linux结束进程到底有多少种方法?
請關注本頭條號,每天堅持更新原創干貨技術文章。
如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習。
1. 前言
我們經常在Linux里使用kill命令來結束某后臺進程。但kill命令實際上是向進程發送信號,并且有多種信號。終止運行一個程序只是其中一個信號而已。kill是根據進程號發送信號的,而另一個工具killall是根據進程名稱發送信號的。
2. 查看kill支持的信號
[root@zcwyou ~]# kill -l1) 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
linux查看kill選項
3. 結束進程
普通用戶只能使用不帶signal參數的kill命令
一般情況下,最多使用-9信號。即強制結束某個進程。
比如強制結束進程號為123的進程。
先確認進程號:
[root@zcwyou ~]# toplinux查看進程號
然后根據進程號強制結束:
[root@zcwyou ~]# kill -9 123默認情況,kill使用信號15結束進程,并且是安全的。而信號 9 則是處理異常進程的,請勿濫用
4. kill其它常用信號
代號名稱內容1SIGHUP啟動被終止的程序,可讓該進程重新讀取自己的配置文件,類似重新啟動。2SIGINT相當于用鍵盤輸入 [ctrl]-c 來中斷一個程序的進行。9SIGKILL代表強制中斷一個程序的進行,如果該程序進行到一半,那么尚未完成的部分可能會有“半產品”產生,類似 vim會有 .filename.swp 保留下來。15SIGTERM以正常的方式來終止該程序。由于是正常的終止,所以后續的動作會將他完成。不過,如果該程序已經發生問題,就是無法使用正常的方法終止時,輸入這個 signal 也是沒有用的。19SIGSTOP相當于用鍵盤輸入 [ctrl]-z 來暫停一個程序的進行。
5. 殺死用戶user1的所有進程
[root@zcwyou ~]# kill -9 $(ps -ef | grep user1)或者
[root@zcwyou ~]# kill -u user16. 另一個工具killall命令,根據進程名稱發送信號,而不是進程號
以CentOS7.5為例,默認情況并沒有安裝killall命令。
運行以下命令安裝軟件:
[root@zcwyou ~]# yum -y install psmisclinux安裝killall命令
先查看正在運行的進程
[root@zcwyou ~]# ps -ef結束一個名為abc的進程,默認情況下使用SIGTERM命令。
[root@zcwyou ~]# killall abc查看killall支持的信號
[root@zcwyou ~]# killall -lHUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS UNUSED
linux結束進程命令killall支持的信號
注意:假如進程的名字的長度小于等于15,默認情況下就會以完整名稱匹配。
7. 還有一個pkill命令,也是根據進程名稱發送信號,類似于killall
pkill選項
-o:僅向找到的最小(起始)進程號發送信號;
-n:僅向找到的最大(結束)進程號發送信號;
-P:指定父進程號發送信號;
-g:指定進程組;
-t:指定開啟進程的終端。
例子:
結束進程abc
pkill abc
以CentOS7.5為例,默認情況下,系統并沒有集成pkill命令。而是要自行安裝。
[root@zcwyou ~]# yum -y install procps-ngLinux安裝pkill工具結束進程
8. 總結
Linux下結束進程的工具有很多,這里僅僅了解一些常用的命令。
本文已同步至博客站:
https://www.linuxrumen.com/cyml/400.html
點擊了解更多,快速查看更多的技術文章列表。
總結
以上是生活随笔為你收集整理的_Linux结束进程到底有多少种方法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录一个properties转yaml在
- 下一篇: oracle行列互换sql,解决Orac