Linux系統(tǒng)結束進程多種方法集合?

2021-02-27    分類: 網(wǎng)站建設

1. 前言

我們經(jīng)常在Linux里使用kill命令來結束某后臺進程。但kill命令實際上是向進程發(fā)送信號,并且有多種信號。終止運行一個程序只是其中一個信號而已。kill是根據(jù)進程號發(fā)送信號的,而另一個工具killall是根據(jù)進程名稱發(fā)送信號的。

2. 查看kill支持的信號

[root@zcwyou ~]# 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


linux查看kill選項

3. 結束進程

普通用戶只能使用不帶signal參數(shù)的kill命令

一般情況下,最多使用-9信號。即強制結束某個進程。

比如強制結束進程號為123的進程。

先確認進程號:

[root@zcwyou ~]# top

linux查看進程號

然后根據(jù)進程號強制結束:

[root@zcwyou ~]# kill -9 123

默認情況,kill使用信號15結束進程,并且是安全的。而信號 9 則是處理異常進程的,請勿濫用

4. kill其它常用信號

代號名稱內(nèi)容1SIGHUP啟動被終止的程序,可讓該進程重新讀取自己的配置文件,類似重新啟動。2SIGINT相當于用鍵盤輸入 [ctrl]-c 來中斷一個程序的進行。9SIGKILL代表強制中斷一個程序的進行,如果該程序進行到一半,那么尚未完成的部分可能會有“半產(chǎn)品”產(chǎn)生,類似 vim會有 .filename.swp 保留下來。15SIGTERM以正常的方式來終止該程序。由于是正常的終止,所以后續(xù)的動作會將他完成。不過,如果該程序已經(jīng)發(fā)生問題,就是無法使用正常的方法終止時,輸入這個 signal 也是沒有用的。19SIGSTOP相當于用鍵盤輸入 [ctrl]-z 來暫停一個程序的進行。

5. 殺死用戶user1的所有進程

[root@zcwyou ~]# kill -9 $(ps -ef | grep user1)

或者

[root@zcwyou ~]# kill -u user1

6. 另一個工具killall命令,根據(jù)進程名稱發(fā)送信號,而不是進程號

以CentOS7.5為例,默認情況并沒有安裝killall命令。

運行以下命令安裝軟件:

[root@zcwyou ~]# yum -y install psmisc

linux安裝killall命令

先查看正在運行的進程

[root@zcwyou ~]# ps -ef 

結束一個名為abc的進程,默認情況下使用SIGTERM命令。

[root@zcwyou ~]# killall abc

查看killall支持的信號

[root@zcwyou ~]# killall -l

HUP 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命令,也是根據(jù)進程名稱發(fā)送信號,類似于killall

pkill選項

-o:僅向找到的最?。ㄆ鹗迹┻M程號發(fā)送信號;

-n:僅向找到的大(結束)進程號發(fā)送信號;

-P:指定父進程號發(fā)送信號;

-g:指定進程組;

-t:指定開啟進程的終端。

例子:

結束進程abc

pkill abc

以CentOS7.5為例,默認情況下,系統(tǒng)并沒有集成pkill命令。而是要自行安裝。

[root@zcwyou ~]# yum -y install procps-ng

Linux安裝pkill工具結束進程

8. 總結

Linux下結束進程的工具有很多,這里僅僅了解一些常用的命令。

當前標題:Linux系統(tǒng)結束進程多種方法集合?
新聞來源:http://www.muchs.cn/news29/103229.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序品牌網(wǎng)站制作、軟件開發(fā)、網(wǎng)站策劃、微信公眾號、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設