Linux中殺掉一個(gè)進(jìn)程可以用kill和killall命令,killall命令用命令名字來(lái)殺死指定進(jìn)程,而kill命令則是用進(jìn)程PID來(lái)殺死進(jìn)程。
創(chuàng)新互聯(lián)公司是一家專業(yè)從事成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計(jì)公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,創(chuàng)新互聯(lián)公司依托強(qiáng)大的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營(yíng)經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!
killall命令,顧名思義就是殺死所有以某個(gè)命令啟動(dòng)的所有進(jìn)程,用killall命令殺死進(jìn)程的命令是這樣的(這里是殺死以httpd命令啟動(dòng)的所有進(jìn)程):
killall -9 httpd
-9參數(shù)表示強(qiáng)制終止進(jìn)程。
最常用的是用kill命令結(jié)束進(jìn)程,但是kill命令需要用進(jìn)程的PID作為參數(shù)。如何知道指定進(jìn)程的PID呢?如果是通過(guò)進(jìn)程命令名字查看對(duì)應(yīng)PID,可以通過(guò)ps或pstree命令看到它的PID;如果是通過(guò)網(wǎng)絡(luò)監(jiān)聽端口號(hào)查看進(jìn)程,需要用netstat命令看看端口號(hào)對(duì)應(yīng)的進(jìn)程的PID。
ps命令用于查看系統(tǒng)所有進(jìn)程,而pstree命令以樹狀顯示進(jìn)程之間的關(guān)系,有助于判斷要?dú)⑺滥膫€(gè)進(jìn)程。記住在它們顯示的結(jié)果中記下需要結(jié)束的進(jìn)程PID。ps命令的常用用法是:
ps aux
-a參數(shù)表示不與終端有關(guān)的進(jìn)程也顯示出來(lái)。
pstree命令的常見用法是:
pstree -Aup
-p參數(shù)表示列出進(jìn)程PID。
netstat命令可以查看監(jiān)聽端口的進(jìn)程是哪個(gè),常用的方式是:netstat -tlnp
這條命令的意思是列出系統(tǒng)里面監(jiān)聽網(wǎng)絡(luò)連接的端口號(hào)和相應(yīng)的進(jìn)程PID。
參數(shù)說(shuō)明:
-t:表示列出TCP連接(也可以加上-u參數(shù)表示同時(shí)列出UDP網(wǎng)絡(luò)連接)
-l:表示列出正在網(wǎng)絡(luò)監(jiān)聽的服務(wù)
關(guān)鍵是下面兩個(gè)參數(shù):
-n:表示以端口號(hào)來(lái)顯示
-p:表示列出進(jìn)程PID
Local Address這一列下面就有端口號(hào),可以看到它對(duì)應(yīng)的PID是多少,還有Program name那一列是進(jìn)程名字。同樣是要記下需要結(jié)束的進(jìn)程的PID。
知道了指定進(jìn)程的PID后,就可以用kill命令結(jié)束進(jìn)程了:
kill -9 PID號(hào)碼
或者kill -2 PID號(hào)碼
-9參數(shù)是強(qiáng)制結(jié)束進(jìn)程,而-2參數(shù)是相當(dāng)于用鍵盤組合鍵Ctrl+C的方式正常結(jié)束進(jìn)程。
1、首先,連接相應(yīng)linux主機(jī),進(jìn)入到linux命令行狀態(tài)下,等待輸入shell指令。
2、其次,以終止進(jìn)程號(hào)1984的nginx子進(jìn)程為例,在linux命令行中輸入:kill -9 1984。
3、最后,按下回車鍵執(zhí)行shell指令,此時(shí)會(huì)看到進(jìn)程號(hào)1984的nginx子進(jìn)程被成功終止了。
awk是linux下強(qiáng)大的文本處理工具
xargs是linux下一個(gè)常用命令,用于將參數(shù)列表打散
這兩個(gè)命令結(jié)合用來(lái)批量結(jié)束進(jìn)程:
ps -ef | grep nsq | grep -v grep | awk '{print $2}' | xargs kill #殺掉所有nsq相關(guān)進(jìn)程
awk是什么的縮寫?看這里:
Linux 系統(tǒng)中,進(jìn)程就是一個(gè)程序的運(yùn)行實(shí)例。它可能運(yùn)行在前端(比如有交互的進(jìn)程),也可能運(yùn)行在后端(比如無(wú)交互或自動(dòng)運(yùn)行的進(jìn)程)。它可能是一個(gè)父進(jìn)程(運(yùn)行期間創(chuàng)建了其他進(jìn)程),也可能是一個(gè)子進(jìn)程(由其他進(jìn)程所創(chuàng)建)。
在 Linux 系統(tǒng)中,除 PID 為 0 的第一個(gè) init 進(jìn)程(或 systemd )外,其余進(jìn)程都有父進(jìn)程。進(jìn)程也可以擁有自己的子進(jìn)程。
你可以通過(guò)使用 pstree 命令 來(lái)查看進(jìn)程的樹型結(jié)構(gòu),你可以清晰的看到各個(gè)進(jìn)程的“家族樹”。
在 Linux 系統(tǒng)中,正常情況下,子進(jìn)程死亡后其父進(jìn)程會(huì)接收到通知進(jìn)行一些例如釋放內(nèi)存之類的清理操作。但是,如果父進(jìn)程未收到通知察覺子進(jìn)程死亡,那么子進(jìn)程就進(jìn)入了“僵死”狀態(tài)。
這就是僵死進(jìn)程產(chǎn)生的原因。
僵尸進(jìn)程并不可怕,少量的僵尸進(jìn)程對(duì)系統(tǒng)影響并不大。但如果系統(tǒng)的內(nèi)存已經(jīng)所剩不多或者有太多的僵尸進(jìn)程在耗掉內(nèi)存,問(wèn)題會(huì)變得糟糕。
同樣,大部分 Linux 系統(tǒng)進(jìn)程最大 PID 設(shè)置為 32768,如果過(guò)多僵尸進(jìn)程導(dǎo)致其他重要任務(wù)沒有 PID 可用,那么你的系統(tǒng)會(huì)發(fā)生崩潰。
特別當(dāng)存在一個(gè)編碼糟糕的程序開始大量產(chǎn)生僵尸進(jìn)程的時(shí)候,這種情況經(jīng)常發(fā)生。在這種情況下,我們就需要找到并殺死僵尸進(jìn)程。
在linux系統(tǒng)中,進(jìn)程有如下幾種狀態(tài),它們隨時(shí)可能處于以上狀態(tài)中的一種:
我們可以在命令終端中通過(guò) top命令 來(lái)查看系統(tǒng)進(jìn)程和它的當(dāng)前狀態(tài)。
命令如下:
如上面截圖中看到的,其中共有 250 個(gè)任務(wù)(進(jìn)程),其中 1 個(gè)處在 “運(yùn)行中running” 狀態(tài),248 個(gè)進(jìn)程處于 “休眠sleep” 狀態(tài),還有一個(gè)處于 “僵尸zombie” 狀態(tài)。
現(xiàn)在問(wèn)題進(jìn)入下一步,如何殺死 “僵尸” 進(jìn)程?
僵尸進(jìn)程對(duì)系統(tǒng)來(lái)說(shuō)就是已經(jīng)死亡的進(jìn)程,那么如何殺掉一個(gè)已經(jīng)死亡的進(jìn)程呢?
方法很簡(jiǎn)單,我們只需要通過(guò)如下ps命令就可以列舉僵尸進(jìn)程,得到它們的進(jìn)程 ID。
ps ux 命令輸出的第 8 列顯示了進(jìn)程狀態(tài)。上述命令將會(huì)打印所有處在 Z+ 狀態(tài)(表示僵尸狀態(tài))的進(jìn)程。
確認(rèn)了進(jìn)程 ID 后,我們可以得到它的父進(jìn)程 ID:
你也可以將上述兩個(gè)命令結(jié)合在一起,直接得到僵尸進(jìn)程的 PID 及其父進(jìn)程的 PID:
通過(guò)以上命令都可以找到僵尸進(jìn)程,然后你就可以通過(guò) kill命 令殺掉了。
或者通過(guò)如下命令查看僵尸進(jìn)程:
該命令輸出結(jié)果上你可以直接看出其父進(jìn)程ID,這時(shí)候你直接使用kill命令殺掉即可。
再次運(yùn)行 ps 命令或 top 命令,你可以驗(yàn)證僵尸進(jìn)程是否已經(jīng)被殺死。
通過(guò)本文你將認(rèn)識(shí) Linux 系統(tǒng)中的僵尸進(jìn)程以及明白了其產(chǎn)生的主要原因。同時(shí),你也能學(xué)會(huì)如何查找僵尸僵尸進(jìn)程并殺掉僵尸進(jìn)程。
當(dāng)然你也可以自己別寫腳本設(shè)置成定時(shí)運(yùn)行任務(wù)自動(dòng)來(lái)替你做這些工作。
當(dāng)前名稱:殺掉linux進(jìn)程命令 殺死進(jìn)程linux命令
標(biāo)題鏈接:http://m.kartarina.com/article20/dogesco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、定制網(wǎng)站、網(wǎng)站改版、網(wǎng)站維護(hù)、靜態(tài)網(wǎng)站、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容