新聞中心
在Linux操作系統(tǒng)中,進(jìn)程是指正在運(yùn)行的程序?qū)嵗S袝r(shí)候,由于各種原因,我們需要停止某個(gè)進(jìn)程,這就需要用到殺掉進(jìn)程的命令。不過,殺掉進(jìn)程是一項(xiàng)比較敏感的操作,需要謹(jǐn)慎使用,否則可能會(huì)導(dǎo)致系統(tǒng)崩潰或數(shù)據(jù)丟失等問題。本篇文章將介紹如何在Linux上安全地殺掉進(jìn)程。

站在用戶的角度思考問題,與客戶深入溝通,找到相城網(wǎng)站設(shè)計(jì)與相城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋相城地區(qū)。
一、查看進(jìn)程
在Linux系統(tǒng)中,我們可以使用ps命令查看正在運(yùn)行的進(jìn)程。ps命令有很多參數(shù)可以使用,下面是一些常用的參數(shù):
ps -A:顯示所有進(jìn)程
ps -u username:顯示指定用戶的進(jìn)程
ps -aux:顯示所有進(jìn)程的詳細(xì)信息
在查看進(jìn)程時(shí),我們需要關(guān)注的是進(jìn)程的PID。PID是每個(gè)進(jìn)程都有的一個(gè)唯一標(biāo)識(shí)符,通過它我們可以確定要?dú)⑺赖倪M(jìn)程。
二、殺死進(jìn)程
在Linux中,我們可以使用kill命令殺死進(jìn)程。kill命令有很多參數(shù),下面是一些常用的參數(shù):
kill PID:殺死指定進(jìn)程
kill -9 PID:強(qiáng)制殺死指定進(jìn)程
killall processname:殺死所有指定進(jìn)程名的進(jìn)程
其中,-9參數(shù)用于強(qiáng)制殺死進(jìn)程。需要注意的是,如果使用kill -9命令來(lái)殺死進(jìn)程,會(huì)直接向進(jìn)程發(fā)送SIGKILL信號(hào),這會(huì)導(dǎo)致進(jìn)程無(wú)法做出任何清理工作,可能會(huì)對(duì)數(shù)據(jù)造成損害,因此建議先嘗試使用kill命令來(lái)平穩(wěn)地關(guān)閉進(jìn)程。
三、使用pkill命令殺死進(jìn)程
pkill命令與killall命令類似,可以殺死指定進(jìn)程名的所有進(jìn)程。它的使用方法也很簡(jiǎn)單:
pkill processname
需要注意的是,與killall命令類似,如果指定的進(jìn)程名比較通用,可能會(huì)誤傷其他進(jìn)程,因此在使用pkill命令時(shí),需要特別小心。
四、使用kill命令殺死僵尸進(jìn)程
僵尸進(jìn)程是指已經(jīng)完成了執(zhí)行,但原始進(jìn)程沒有正常退出的進(jìn)程。這些進(jìn)程會(huì)一直占用內(nèi)存空間,直到被完全銷毀。一旦遇到僵尸進(jìn)程,我們可以使用kill命令將其殺死。
需要注意的是,對(duì)于僵尸進(jìn)程,使用kill命令不一定能完全殺死它,還需要使用wtpid系統(tǒng)調(diào)用等方法,才能徹底清除它們。
五、
在使用Linux系統(tǒng)時(shí),殺死進(jìn)程是一項(xiàng)基本的操作。雖然它看起來(lái)很簡(jiǎn)單,但如果不謹(jǐn)慎使用,可能會(huì)給系統(tǒng)帶來(lái)很大的損失。因此,在殺死進(jìn)程之前,我們需要確認(rèn)該進(jìn)程是否可以被終止,并按照正確的方法來(lái)關(guān)閉它。以上就是關(guān)于如何在Linux上殺掉進(jìn)程的介紹,希望能對(duì)讀者有所幫助。
相關(guān)問題拓展閱讀:
- 如何殺掉 linux 系統(tǒng)中某一指定進(jìn)程
- 如何用linux組合指令查找某個(gè)進(jìn)程并殺死
如何殺掉 linux 系統(tǒng)中某一指定進(jìn)程
Linux中殺掉一個(gè)進(jìn)程可以用kill和killall命令,killall命令用命令名字來(lái)殺死指定進(jìn)程,而kill命令則是用進(jìn)程PID來(lái)殺死進(jìn)程。
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呢?如果是通過進(jìn)程命令名字查看對(duì)應(yīng)PID,可以通過ps或pstree命令看到它的PID;如果是通過網(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)程。
如何用linux組合指令查找某個(gè)進(jìn)程并殺死
方法比較多,列舉一二:
ps -ef | grep ***** | awk 改汪派'{cmd = “kill “$2; system(cmd)}’
ps 陵塵-ef | grep ***** | awk ‘核賀{print “kill ” $2}’ | sh
root:08 pts/:00:00 grep –color=auto fcitx
1.作用
kill命令用來(lái)中止一個(gè)進(jìn)程。
2.格式
kill pid …
kill -l
3.參數(shù)
-s:指定發(fā)送的信號(hào)。
-p:模擬發(fā)送信號(hào)。
-l:指定信號(hào)的名稱列表。
pid:要中止進(jìn)程的ID號(hào)。
Signal:表示信號(hào)。
4.說(shuō)明
進(jìn)程是Linux系統(tǒng)中一個(gè)非常重要的概念。Linux是一個(gè)多任務(wù)的操作系統(tǒng),系統(tǒng)上經(jīng)常同時(shí)運(yùn)行著多個(gè)進(jìn)程。我們不關(guān)心這些進(jìn)程究竟是如何分配的,或 者是內(nèi)核如何管理分配時(shí)間片的,所關(guān)心的是如何去控制這些進(jìn)程,讓它們能夠很好地為用戶服務(wù)。
Linux操作系統(tǒng)包括三種不同類型的進(jìn)程,每種進(jìn)程都有自己的特點(diǎn)和屬性。交互進(jìn)程是由一個(gè)Shell啟動(dòng)的進(jìn)程。交互進(jìn)程既可以在前臺(tái)運(yùn)行,也 可以在后臺(tái)運(yùn)行。批處理進(jìn)程和終端沒有聯(lián)系,是一個(gè)進(jìn)程序列。監(jiān)控進(jìn)程(也稱系統(tǒng)守護(hù)進(jìn)程)時(shí)Linux系統(tǒng)啟動(dòng)時(shí)啟動(dòng)的進(jìn)程,并在后臺(tái)運(yùn)行。例 如,httpd是著名的Apache服務(wù)器的監(jiān)控進(jìn)程。
kill命令的工作原理是,向Linux系統(tǒng)的內(nèi)核發(fā)送一個(gè)系統(tǒng)操作信號(hào)和某個(gè)程序的進(jìn)程標(biāo)識(shí)號(hào),然后系統(tǒng)內(nèi)核就可以對(duì)進(jìn)程標(biāo)識(shí)號(hào)指定的進(jìn)程進(jìn)行操 作。比如在top命令中,我們看到系統(tǒng)運(yùn)行許多進(jìn)程,有時(shí)就需要使用kill中止某些進(jìn)程來(lái)提高系統(tǒng)資源。系統(tǒng)多個(gè)虛擬控制臺(tái)的作用是當(dāng)一個(gè)程序出錯(cuò)造成 系統(tǒng)死鎖時(shí),可以切換到其它虛擬控制臺(tái)工作關(guān)閉這個(gè)程序。此時(shí)使用的命令就是kill,因?yàn)閗ill是大多數(shù)Shell內(nèi)部命令可以直接調(diào)用的。
5.應(yīng)用實(shí)例
(1)強(qiáng)行中止(經(jīng)常使用殺掉)一個(gè)進(jìn)程標(biāo)識(shí)號(hào)為324的進(jìn)程:
#kill -9 324
(2)解除Linux系統(tǒng)的死鎖
在Linux中有時(shí)會(huì)發(fā)生這樣一種情況:一個(gè)程序崩潰,并且處于死鎖的狀態(tài)。此時(shí)一般不用重新啟動(dòng)計(jì)算機(jī), 只需要中止(或者說(shuō)是關(guān)閉)這個(gè)有問題的程序即 可。當(dāng)kill處于X-Window界面時(shí),主要的程序(除了崩潰的程序之外)一般都已經(jīng)正常啟動(dòng)了。此時(shí)打開一個(gè)終端,在那里中止有問題的程序。比如, 如果Mozilla瀏覽器程序出現(xiàn)了鎖死的情況,可以使用kill命令來(lái)中止所有包含有Mozolla瀏覽器的程序。首先用top命令查處該程序的 PID,然后使用kill命令停止這個(gè)程序:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla瀏覽器的程序的進(jìn)程標(biāo)識(shí)號(hào)。
(3)使用命令回收內(nèi)存
我們知道內(nèi)存對(duì)于系統(tǒng)是非常重要的,回收內(nèi)存可以提高系統(tǒng)資源。kill命令可以及時(shí)地中止一些“越軌”的程序或很長(zhǎng)時(shí)間沒有相應(yīng)的程序。例如,使用 top命令發(fā)現(xiàn)一個(gè)無(wú)用 (Zombie) 的進(jìn)程,此時(shí)可以使用下面命令:
#kill -9 XXX
其中,XXX是無(wú)用的進(jìn)程標(biāo)識(shí)號(hào)。
然后使用下仔前游面命令:
#free
此時(shí)會(huì)發(fā)現(xiàn)可用內(nèi)存容量增加了。
(4)killall命令
Linux下還提供了一個(gè)killall命令,可以直接使用進(jìn)程的名字而不是進(jìn)程標(biāo)識(shí)號(hào),例如:
# killall -HUP inetd
*殺死進(jìn)程最安全的方法是單純使用kill命令,不加修飾符,不帶標(biāo)志。
首先使用ps -ef命令確定要?dú)⑺肋M(jìn)程的PID,然后輸入以下命令:
# kill -pid
注釋:標(biāo)準(zhǔn)的kill命令通常都能達(dá)到目的。終止有問題的進(jìn)程,并把進(jìn)程的資源釋放給系統(tǒng)。然而,如果進(jìn)程啟動(dòng)了子進(jìn)程,只殺死父進(jìn)程,子進(jìn)程仍在 運(yùn)行,因此仍消耗資源。為了防止這些所謂的“僵尸進(jìn)程”,應(yīng)確保在殺死父進(jìn)程之前,先殺死其所有的子進(jìn)程。悔孫
——————————————————————————–
*確定要?dú)⑺肋M(jìn)程的PID或PPID
# ps -ef | grep httpd
——————————————————————————–
*以優(yōu)雅的方式結(jié)束進(jìn)程
# kill -l PID
-l選項(xiàng)告訴kill命令用好像啟動(dòng)進(jìn)程的用戶已注銷的方式結(jié)束進(jìn)程。當(dāng)使用該選項(xiàng)時(shí),kill命令也試圖殺死所留下的子進(jìn)程念銷。但這個(gè)命令也不是總 能成功–或許仍然需要先手工殺死子進(jìn)程,然后再殺死父進(jìn)程。
——————————————————————————–
*TERM信號(hào)
給父進(jìn)程發(fā)送一個(gè)TERM信號(hào),試圖殺死它和它的子進(jìn)程。
# kill -TERM PPID
——————————————————————————–
*killall命令
killall命令殺死同一進(jìn)程組內(nèi)的所有進(jìn)程。其允許指定要終止的進(jìn)程的名稱,而非PID。
# killall httpd
——————————————————————————–
*停止和重啟進(jìn)程
有時(shí)候只想簡(jiǎn)單的停止和重啟進(jìn)程。如下:
# kill -HUP PID
該命令讓Linux和緩的執(zhí)行進(jìn)程關(guān)閉,然后立即重啟。在配置應(yīng)用程序的時(shí)候,這個(gè)命令很方便,在對(duì)配置文件修改后需要重啟進(jìn)程時(shí)就可以執(zhí)行此命 令。
——————————————————————————–
*絕殺 kill -9 PID
同意的 kill -s SIGKILL
這個(gè)強(qiáng)大和危險(xiǎn)的命令迫使進(jìn)程在運(yùn)行時(shí)突然終止,進(jìn)程在結(jié)束后不能自我清理。危害是導(dǎo)致系統(tǒng)資源無(wú)法正常釋放,一般不推薦使用,除非其他辦法都無(wú) 效。
當(dāng)使用此命令時(shí),一定要通過ps -ef確認(rèn)沒有剩下任何僵尸進(jìn)程。只能通過終止父進(jìn)程來(lái)消除僵尸進(jìn)程。如果僵尸進(jìn)程被init收養(yǎng),問題就比較嚴(yán)重了。殺死init進(jìn)程意味著關(guān)閉系統(tǒng)。
如果系統(tǒng)中有僵尸進(jìn)程,并且其父進(jìn)程是init,而且僵尸進(jìn)程占用了大量的系統(tǒng)資源,那么就需要在某個(gè)時(shí)候重啟機(jī)器以清除進(jìn)程表了。
查看系統(tǒng)所有進(jìn)程,從中找到那個(gè)要結(jié)束的進(jìn)程的PID,輸入命令:
ps aux
-a參數(shù)表示不與終端有關(guān)的進(jìn)程也顯示出來(lái)。
或者將ps命令的結(jié)果通過管道讓grep命令篩選出那個(gè)進(jìn)程:
ps aux |grep 單前滾引號(hào)括起來(lái)的進(jìn)程名字
還有通過端口號(hào)找到進(jìn)程的,輸入命令:netstat -tlnp
這個(gè)命令表示列出系統(tǒng)里面監(jiān)聽明悔鏈網(wǎng)絡(luò)的TCP連接和相應(yīng)的進(jìn)程PID,這里也可以用管道和grep命令過濾端口號(hào)(比如:netstat -tlnp |grep ’80’激孫)。
參數(shù)說(shuō)明:
-t:表示列出TCP連接
-l:表示列出正在網(wǎng)絡(luò)監(jiān)聽的服務(wù)
-n:表示以端口號(hào)來(lái)顯示
-p:表示列出進(jìn)程PID
然后找到Local Address這一列下面某個(gè)端口號(hào),再看它的PID是多少。
知道了進(jìn)程的PID,就可以用kill命令結(jié)束掉這個(gè)進(jìn)程,命令格式:
kill -9 某個(gè)PID
-9參數(shù)表示是強(qiáng)制結(jié)束進(jìn)程。
ps 命令查找相關(guān)進(jìn)程的pid號(hào)
kill 命令殺死
關(guān)于linux 殺掉進(jìn)程的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營(yíng)銷推廣服務(wù)眾多企業(yè)。電話:028-86922220
標(biāo)題名稱:如何在Linux上殺掉進(jìn)程? (linux 殺掉進(jìn)程)
標(biāo)題路徑:http://fisionsoft.com.cn/article/dpgspjh.html


咨詢
建站咨詢
