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)建)。

龍南ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
在 Linux 系統(tǒng)中,除 PID 為 0 的第一個(gè) init 進(jìn)程(或 systemd )外,其余進(jìn)程都有父進(jìn)程。進(jìn)程也可以擁有自己的子進(jìn)程。
你可以通過(guò)使用 pstree 命令 來(lái)查看進(jìn)程的樹(shù)型結(jié)構(gòu),你可以清晰的看到各個(gè)進(jìn)程的“家族樹(shù)”。
在 Linux 系統(tǒng)中,正常情況下,子進(jìn)程死亡后其父進(jìn)程會(huì)接收到通知進(jìn)行一些例如釋放內(nèi)存之類的清理操作。但是,如果父進(jìn)程未收到通知察覺(jué)子進(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ù)沒(méi)有 PID 可用,那么你的系統(tǒng)會(huì)發(fā)生崩潰。
特別當(dāng)存在一個(gè)編碼糟糕的程序開(kāi)始大量產(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)然你也可以自己別寫(xiě)腳本設(shè)置成定時(shí)運(yùn)行任務(wù)自動(dòng)來(lái)替你做這些工作。
首先我們需要打開(kāi)終端,本經(jīng)驗(yàn)以Fedora操作系統(tǒng)為例,其他的操作系統(tǒng)可能略有不同。打開(kāi)終端之后我們輸入ps,它就是我們今天的主角,ps是linux操作系統(tǒng)中最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令,如果你對(duì)此命令不是十分了解,我們可以輸入ps --help命令來(lái)查看此命令的幫助信息。
如何查看linux進(jìn)程
通過(guò)幫助信息我們可以看到,ps命令的相關(guān)參數(shù)有很多,很多初學(xué)的朋友可能會(huì)看的一頭霧水,不知道該怎么組合這些參數(shù),下面小編就舉一些實(shí)際應(yīng)用例子,來(lái)介紹一些比較常用的查看進(jìn)程的固定命令組合。
如何查看linux進(jìn)程
我們先來(lái)看第一個(gè)命令,ps -l命令。這個(gè)命令和直接使用ps效果類似,但是不同之處在于使用ps命令獲得結(jié)果很短,而使用-l參數(shù)之后將會(huì)較長(zhǎng)、較詳細(xì)的列出該P(yáng)ID的的信息列出,由于參數(shù)較多,小編就不一一介紹各個(gè)參數(shù)的含義了,如果想要了解參數(shù)的具體含義可以上網(wǎng)查看相關(guān)信息。
如何查看linux進(jìn)程
接著我們來(lái)看第二個(gè)命令ps aux,有“-”符號(hào)和沒(méi)有兩者是有區(qū)別的,這個(gè)命令應(yīng)該是比較常用的一個(gè)命令,作用就是列出目前所有的正在內(nèi)存當(dāng)中的程序,其中a表示顯示現(xiàn)行終端機(jī)下的所有程序,包括其他用戶的程序,u表示以用戶為主的格式來(lái)顯示程序狀況,x表示顯示所有程序,不以終端機(jī)來(lái)區(qū)分,它的相關(guān)參數(shù)也不少,例如user,表示屬于那個(gè)使用者賬號(hào)的,%CPU表示使用掉的CPU資源百分比,其他的參數(shù)小編就不一一的介紹了,有興趣可以自行查看。
如何查看linux進(jìn)程
第三個(gè)要介紹的命令就是ps -lA命令,跟ps -l命令輸出的格式一樣,唯一不同的是多了一個(gè)A參數(shù),A的作用就是顯示出所有進(jìn)程,因此使用此命令之后輸出的結(jié)果會(huì)非常的多,如果非必要不建議使用此命令。
如何查看linux進(jìn)程
第四個(gè)命令就是ps ajxf,其中a和x表示的意義已經(jīng)介紹過(guò)了,下面我們看下j的意義,j表示采用工作控制的格式顯示程序狀況,f則表示用ASCII字符顯示樹(shù)狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系,輸出的結(jié)果類似程序樹(shù)顯示。
如何查看linux進(jìn)程
linux查看進(jìn)程命令如下:
操作設(shè)備:戴爾筆記本電腦
操作系統(tǒng):win10
操作程序:xshell軟件
1、首先打開(kāi)xshell軟件,連接上linux服務(wù)器,使用指令ps查看系統(tǒng)進(jìn)程,參數(shù)a表示全部,u表示以用戶格式顯示,x表示進(jìn)程參數(shù)。
2、接著通過(guò)符號(hào)|加上grep查找具體的某個(gè)進(jìn)程,如下圖所示。
3、然后輸入ps -ef用于查看進(jìn)程的父進(jìn)程id,如下圖所示。
4、最后使用pstree指令查看進(jìn)程樹(shù)結(jié)構(gòu),這樣就完成了。
在 Linux 環(huán)境中如何使用進(jìn)程樹(shù)查看后臺(tái)進(jìn)程呢?
使用命令:pstree,但是系統(tǒng)中默認(rèn)是沒(méi)有該命令的,所以要進(jìn)行安裝!CentOS 6 環(huán)境中的安裝命令為:yum install pstree,在 CentOS 7 環(huán)境中的安裝命令為:yum install psmisc。
當(dāng)安裝好 psmisc 之后,就可以查看進(jìn)程樹(shù),命令為: pstree
為了驗(yàn)證,我們可以再開(kāi)啟一個(gè) vim 的后臺(tái)進(jìn)程,然后查看此時(shí)的進(jìn)程樹(shù)
ps:查看進(jìn)程
pstree:顯示進(jìn)程狀態(tài)樹(shù)
pgrep:查找匹配條件的進(jìn)程
kill:終止進(jìn)程
killall:通過(guò)進(jìn)程名終止進(jìn)程
pkill:通過(guò)進(jìn)程名終止進(jìn)程
top:實(shí)時(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況
nice:調(diào)整程序運(yùn)行時(shí)的優(yōu)先級(jí)
renice:調(diào)整運(yùn)行中進(jìn)程的優(yōu)先級(jí)
nohup:用戶退出系統(tǒng)進(jìn)程繼續(xù)工作
strace:跟蹤進(jìn)程的系統(tǒng)調(diào)用
ltrace:跟蹤進(jìn)程調(diào)用庫(kù)函數(shù)
runlevel:輸出當(dāng)前運(yùn)行級(jí)別
init:初始化Linux進(jìn)程
service:管理系統(tǒng)服務(wù)
網(wǎng)頁(yè)題目:linux進(jìn)程家族樹(shù)命令,進(jìn)程家族樹(shù)畫(huà)法
鏈接地址:http://chinadenli.net/article43/dsidghs.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、虛擬主機(jī)、云服務(wù)器、Google、網(wǎng)站收錄、網(wǎng)站營(yíng)銷(xiā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)