Linux kill 命令用于終止進程,其用法步驟如下:
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供寶安網(wǎng)站建設、寶安做網(wǎng)站、寶安網(wǎng)站設計、寶安網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、寶安企業(yè)網(wǎng)站模板建站服務,十余年寶安做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
需要準備的材料分別是:電腦、linux連接工具。
1、首先連接上linux主機,進入命令行狀態(tài)。
2、輸入:ps -ef,按回車,查詢進程列表。
3、選擇需要終止的進程,例如PID為9977的進程,則命令行輸入:kill 9977,按回車即可終止該進程。
殺死進程需要找到進程的pid
kill -9 進程pid立刻殺死進程
kill -15 進程pid等進程執(zhí)行完再殺死
你知道進程占用的端口號,比如nginx是80端口,可以lsof -i:80,注意空格,-i:前面一個空格,后面沒空格直接寫端口號
你知道進程名字,比如nginx,ps -ef | grep nginx 找到pid號殺掉
killalll nginx系統(tǒng)有這個進程會全部殺掉,如果找不到會有提示
通常用第一個,有時候不知道端口用第二個,第三個不怎么用
用ps查看進程
-e 顯示所有進程。
-f 全格式。
-h 不顯示標題。
-l 長格式。
-w 寬輸出。
a 顯示終端上的所有進程,包括其他用戶的進程。
r 只顯示正在運行的進程。
x 顯示沒有控制終端的進程。
一般用ps aux |grep 進程名 搜索某個進程
殺死進程一般用kill 進程號
比如ps出來的某個進程如下所示
4948 ? Ss 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
殺死該進程命令為kill 4948
如果要殺死一組進程用killall 進程組名
kill -9 PID —— 強制殺死一個進程。
1、kill -9 殺死后臺運行的進程。
紅色下劃線:sleep 10000 —— 后臺運行延時 10000 秒的命令,進程 ID 為1317。
黃色下劃線:ps —— 列出 1317 sleep 命令的進程。
(PID:進程 ID、PGID:線程組 ID、SID:會話 ID、TTY:進程運行的終端,標識那個終端控制。(pts遠程終端、tty系統(tǒng)終端)、TIME:進程運行的時間 和 CMD:命令的名稱和參數(shù))。
jobs -l —— 列出后臺運行的命令,1317 sleep 命令正在后臺運行。
藍色下劃線:kill -9 1317—— 殺死?1317 進程。
綠色方框:ps 查詢進程,1317 sleep進程已經(jīng)被殺死(Killed)。jobs -l 已經(jīng)沒有后臺運行的1317 sleep 命令。
2、kill -9 終止掛起的進程。
紅色下劃線:執(zhí)行 sleep 10000 后 ctrl + z 掛起。
黃色下劃線:ps -j 查看進程,有 1342 sleep 的進程。jobs -l 查看后臺,1342 sleep 的狀態(tài)是 stopped 暫停狀態(tài)。
藍色下劃線:kill -9 殺死 1342 進程。此時系統(tǒng)沒有反饋信息。
綠色下劃線:ps -j 查看進程,1342 sleep 已經(jīng)被殺死(Killed)。jobs -l 查看后臺,已經(jīng)沒有了? 1342?sleep。
從實驗上看:
1、后臺命令運行時(Running),執(zhí)行 kill -9 可以強殺進程。
2、掛起命令,處于暫停狀態(tài)時(Stopped),執(zhí)行 kill -9 后通過 ps 查詢進程, 可以看到進程已經(jīng)被殺死。jobs 也查不到有后臺命令。(這里和 kill -2、kill -15 不一樣。kill -2、kill -15 在掛起命令,處于暫停狀態(tài)時(Stopped)時執(zhí)行,通過 ps 還可以查詢到進程,jobs 也可以查詢到后臺仍有處于暫停狀態(tài)的命令。)
1.查進程 ps命令查找與進程相關的PID號:psa顯示現(xiàn)行終端機下的所有程序,包括其他用戶的程序。ps-A顯示所有程序。psc列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數(shù)或常駐服務的標示。ps-e此參數(shù)的效果和指定"A"參數(shù)相同。pse列出程序時,顯示每個程序所使用的環(huán)境變量。psf用ASCII字符顯示樹狀結構,表達程序間的相互關系。ps-H顯示樹狀結構,表示程序間的相互關系。ps-N顯示所有的程序,除了執(zhí)行ps指令終端機下的程序之外。pss采用程序信號的格式顯示程序狀況。psS列出程序時,包括已中斷的子程序資料。ps-t終端機編號 指定終端機編號,并列出屬于該終端機的程序的狀況。psu以用戶為主的格式來顯示程序狀況。psx顯示所有程序,不以終端機來區(qū)分。 最常用的方法是ps aux,然后再通過管道使用grep命令過濾查找特定的進程,然后再對特定的進程進行操作。psaux|grepprogram_filter_word,ps-ef|greptomcat 2.殺進程
Linux 系統(tǒng)中,進程就是一個程序的運行實例。它可能運行在前端(比如有交互的進程),也可能運行在后端(比如無交互或自動運行的進程)。它可能是一個父進程(運行期間創(chuàng)建了其他進程),也可能是一個子進程(由其他進程所創(chuàng)建)。
在 Linux 系統(tǒng)中,除 PID 為 0 的第一個 init 進程(或 systemd )外,其余進程都有父進程。進程也可以擁有自己的子進程。
你可以通過使用 pstree 命令 來查看進程的樹型結構,你可以清晰的看到各個進程的“家族樹”。
在 Linux 系統(tǒng)中,正常情況下,子進程死亡后其父進程會接收到通知進行一些例如釋放內(nèi)存之類的清理操作。但是,如果父進程未收到通知察覺子進程死亡,那么子進程就進入了“僵死”狀態(tài)。
這就是僵死進程產(chǎn)生的原因。
僵尸進程并不可怕,少量的僵尸進程對系統(tǒng)影響并不大。但如果系統(tǒng)的內(nèi)存已經(jīng)所剩不多或者有太多的僵尸進程在耗掉內(nèi)存,問題會變得糟糕。
同樣,大部分 Linux 系統(tǒng)進程最大 PID 設置為 32768,如果過多僵尸進程導致其他重要任務沒有 PID 可用,那么你的系統(tǒng)會發(fā)生崩潰。
特別當存在一個編碼糟糕的程序開始大量產(chǎn)生僵尸進程的時候,這種情況經(jīng)常發(fā)生。在這種情況下,我們就需要找到并殺死僵尸進程。
在linux系統(tǒng)中,進程有如下幾種狀態(tài),它們隨時可能處于以上狀態(tài)中的一種:
我們可以在命令終端中通過 top命令 來查看系統(tǒng)進程和它的當前狀態(tài)。
命令如下:
如上面截圖中看到的,其中共有 250 個任務(進程),其中 1 個處在 “運行中running” 狀態(tài),248 個進程處于 “休眠sleep” 狀態(tài),還有一個處于 “僵尸zombie” 狀態(tài)。
現(xiàn)在問題進入下一步,如何殺死 “僵尸” 進程?
僵尸進程對系統(tǒng)來說就是已經(jīng)死亡的進程,那么如何殺掉一個已經(jīng)死亡的進程呢?
方法很簡單,我們只需要通過如下ps命令就可以列舉僵尸進程,得到它們的進程 ID。
ps ux 命令輸出的第 8 列顯示了進程狀態(tài)。上述命令將會打印所有處在 Z+ 狀態(tài)(表示僵尸狀態(tài))的進程。
確認了進程 ID 后,我們可以得到它的父進程 ID:
你也可以將上述兩個命令結合在一起,直接得到僵尸進程的 PID 及其父進程的 PID:
通過以上命令都可以找到僵尸進程,然后你就可以通過 kill命 令殺掉了。
或者通過如下命令查看僵尸進程:
該命令輸出結果上你可以直接看出其父進程ID,這時候你直接使用kill命令殺掉即可。
再次運行 ps 命令或 top 命令,你可以驗證僵尸進程是否已經(jīng)被殺死。
通過本文你將認識 Linux 系統(tǒng)中的僵尸進程以及明白了其產(chǎn)生的主要原因。同時,你也能學會如何查找僵尸僵尸進程并殺掉僵尸進程。
當然你也可以自己別寫腳本設置成定時運行任務自動來替你做這些工作。
網(wǎng)站欄目:linux查詢殺進程命令 linux查看進程并殺掉
網(wǎng)站路徑:http://chinadenli.net/article2/dodsioc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、網(wǎng)站制作、網(wǎng)站設計公司、網(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)