欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Linux終止僵尸進(jìn)程

CHANBAEK ? 來(lái)源:myfreax ? 作者:myfreax ? 2022-12-12 17:40 ? 次閱讀

在了解Zombie進(jìn)程之前,讓我回憶一下什么是進(jìn)程。簡(jiǎn)而言之,進(jìn)程是程序?qū)嵗?。它可以是前臺(tái)的交互式進(jìn)程或后臺(tái)的非交互式或自動(dòng)進(jìn)程。

它可以是父進(jìn)程,運(yùn)行時(shí)其他進(jìn)程的創(chuàng)建者。也可以是子進(jìn)程是由其它進(jìn)程創(chuàng)建的進(jìn)程。

Linux除了第一個(gè)PID為0的init/systemd初始化進(jìn)程外,其他每個(gè)進(jìn)程都有一個(gè)父進(jìn)程。

使用pstree命令在終端中的查看進(jìn)程樹(shù)時(shí),也可以查看系統(tǒng)進(jìn)程的族普。在本教程中將說(shuō)明如何在Linux終止僵尸進(jìn)程。

僵尸進(jìn)程

當(dāng)子進(jìn)程死亡時(shí),會(huì)通知父進(jìn)程,以便它可以進(jìn)行一些清理,例如釋放內(nèi)存等。

但是存在另一種例外情況是,當(dāng)子進(jìn)程比父進(jìn)程先結(jié)束,而父進(jìn)程又沒(méi)有回收子進(jìn)程,釋放子進(jìn)程占用的資源。此時(shí)子進(jìn)程將成為一個(gè)僵尸進(jìn)程。

僵尸進(jìn)程危害

實(shí)話說(shuō)僵尸進(jìn)程并不像它的名字聽(tīng)起來(lái)那么危險(xiǎn)。如果您的系統(tǒng)內(nèi)存有限或者有太多僵尸進(jìn)程占用內(nèi)存,則可能會(huì)出現(xiàn)問(wèn)題。

此外,現(xiàn)在的Linux發(fā)行版都可以將進(jìn)程PID的最大值設(shè)置為32768。如果系統(tǒng)進(jìn)程沒(méi)有可用的ID,您的系統(tǒng)可能會(huì)崩潰。

這種情況很少發(fā)生,但有可能發(fā)生,如果一個(gè)編碼不當(dāng)?shù)某绦蜷_(kāi)始產(chǎn)生大量僵尸進(jìn)程。在這種情況下,最好找到并終止僵尸進(jìn)程。

查找僵尸進(jìn)程

Linux中的進(jìn)程可以是這些狀態(tài)之一,D不間斷睡眠,I空閑,R正在運(yùn)行,S睡眠,T由進(jìn)程制信號(hào)終止,t在跟蹤狀態(tài),通常是被調(diào)試器停止。Z僵尸進(jìn)程。

在查找僵尸進(jìn)程不妨是先要確認(rèn)Linux系統(tǒng)存在多少的僵尸進(jìn)程運(yùn)行top命令,top命令輸出的第二行行尾包行僵尸進(jìn)程的計(jì)數(shù)1 zombie。

現(xiàn)在Linux系統(tǒng)僅僅存在一個(gè)僵尸進(jìn)程,因此,我們可以不用終止它。但是當(dāng)系統(tǒng)存在大量的僵尸進(jìn)程的你可能就需要終止他們。

要找到Linux系統(tǒng)存在僵尸進(jìn)程,最簡(jiǎn)單方法使用ps命令列出所有進(jìn)程,然后通過(guò)管道傳遞awk命令根據(jù)進(jìn)程狀態(tài)過(guò)濾僵尸進(jìn)程。

top
ps ux | awk '{if($8=="Z+") print}'
top - 22:34:07 up 12:11,  1 user,  load average: 1.82, 1.83, 1.64
Tasks: 393 total,   1 running, 391 sleeping,   0 stopped,   1 zombie

終止僵尸進(jìn)程

僵尸進(jìn)程已經(jīng)死了,你如何殺死一個(gè)已經(jīng)死的進(jìn)程。在僵尸電影中,你可以射擊僵尸的頭部或放火燒它。

但在這里不是一個(gè)很好選項(xiàng)。你可以燒毀你的系統(tǒng)來(lái)殺死僵尸進(jìn)程,但這不是一個(gè)很好的解決方案。

有些人建議向父進(jìn)程發(fā)送SIGCHLD信號(hào)。但它更有可能被忽視。殺死僵尸進(jìn)程的另一個(gè)選擇是殺死其父進(jìn)程。

這聽(tīng)起來(lái)很殘酷,但這是殺死僵尸進(jìn)程的唯一可靠方法。在終止僵尸進(jìn)程之前。讓我們列出僵尸進(jìn)程PID。這一點(diǎn)可以在終端運(yùn)行ps命令來(lái)實(shí)現(xiàn)。

ps ux命令輸出的第8列是進(jìn)程的狀態(tài)。這里通過(guò)awk命令僅打印進(jìn)程狀態(tài)為Z+的進(jìn)程,Z+表示僵尸進(jìn)程。

確定僵尸進(jìn)程PID后,讓我們獲取其父進(jìn)程PID,運(yùn)行命令ps -o ppid= -p child_process_id,child_process_id是僵尸進(jìn)程PID。

你也可以運(yùn)行兩個(gè)命令的組合命令ps -A -ostat,pid,ppid | grep -e '[zZ]',命令將直接提供僵尸進(jìn)程的PID及其父進(jìn)程的PID。

ps ux | awk '{if($8=="Z+") print}'
ps -o ppid= -p child_process_id_number

ps -A -ostat,pid,ppid | grep -e '[zZ]'
Z+      1828    1754

Z+是子進(jìn)程的狀態(tài),1828是子進(jìn)程PID,1754是父進(jìn)程PID。

現(xiàn)在您獲得了父進(jìn)程PID,最后運(yùn)行命令sudo kill -9 parent_process_ID終止進(jìn)程。parent_process_ID是父進(jìn)程PID。

當(dāng)終止父進(jìn)程后可以再次運(yùn)行命令ps ux | awk '{if($8=="Z+") print}',確認(rèn)是否終止僵尸進(jìn)程,也可以運(yùn)行top命令查看僵尸進(jìn)程的計(jì)數(shù)。

kill -9 
ps ux | awk '{if($8=="Z+") print}'

結(jié)論

至此,你已經(jīng)了解什么是僵尸進(jìn)程,為什么要終止僵尸進(jìn)程,如何查找僵尸進(jìn)程以及終止僵尸進(jìn)程。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11350

    瀏覽量

    210476
  • 進(jìn)程
    +關(guān)注

    關(guān)注

    0

    文章

    204

    瀏覽量

    14002
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux系統(tǒng)下進(jìn)程的幾種狀態(tài)介紹

    文章對(duì) Linux 系統(tǒng)下進(jìn)程的幾種狀態(tài)進(jìn)行介紹,并對(duì)系統(tǒng)出現(xiàn)大量僵尸進(jìn)程和不可中斷進(jìn)程的場(chǎng)景進(jìn)行分析,使用常用的幾種工具進(jìn)行問(wèn)題分析定位。
    發(fā)表于 11-24 16:15 ?1.3w次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)下<b class='flag-5'>進(jìn)程</b>的幾種狀態(tài)介紹

    Linux學(xué)習(xí)雜談】之進(jìn)程的誕生和消失

    死機(jī)。 來(lái)看下幾個(gè)進(jìn)程的概念:僵尸進(jìn)程:(1)子進(jìn)程先于父進(jìn)程結(jié)束Linux系統(tǒng)設(shè)計(jì)的時(shí)候,當(dāng)每
    發(fā)表于 09-01 20:38

    孤兒進(jìn)程僵尸進(jìn)程

    前段時(shí)間,由于研究經(jīng)典面試題,把孤兒進(jìn)程僵尸進(jìn)程也總結(jié)了一下。我們有這樣一個(gè)問(wèn)題:孤兒進(jìn)程僵尸進(jìn)程
    發(fā)表于 11-29 14:08

    Linux下的進(jìn)程結(jié)構(gòu)

    進(jìn)程不但包括程序的指令和數(shù)據(jù),而且包括程序計(jì)數(shù)器和處理器的所有寄存器及存儲(chǔ)臨時(shí)數(shù)據(jù)的進(jìn)程堆棧,因此正在執(zhí)行的進(jìn)程包括處理器當(dāng)前的一切活動(dòng)。 因?yàn)?b class='flag-5'>Linux是一個(gè)多
    發(fā)表于 05-27 09:24

    什么是僵尸進(jìn)程和孤兒進(jìn)程

    在UNIX里,除了進(jìn)程0(即PID=0的交換進(jìn)程,Swapper Process)以外的所有進(jìn)程都是由其他進(jìn)程使用系統(tǒng)調(diào)用fork創(chuàng)建的,這里調(diào)用fork創(chuàng)建新
    發(fā)表于 08-02 08:36

    為什么會(huì)出現(xiàn)LINUX僵尸進(jìn)程

    僵尸進(jìn)程出現(xiàn)在父進(jìn)程沒(méi)有回收子進(jìn)程的PCB的時(shí)候,這個(gè)時(shí)候子進(jìn)程已經(jīng)結(jié)束,但是父進(jìn)程沒(méi)有回收他,
    發(fā)表于 08-07 06:48

    Linux守護(hù)進(jìn)程詳解

    較長(zhǎng)的進(jìn)程,通常獨(dú)立于控制終端并且周期性地執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。守護(hù)進(jìn)程常常在系統(tǒng)引導(dǎo)載入時(shí)啟動(dòng),在系統(tǒng)關(guān)閉時(shí)終止。Linux有很多系統(tǒng)服務(wù),大多數(shù)服務(wù)都是通過(guò)守護(hù)
    發(fā)表于 10-18 14:24 ?0次下載
    <b class='flag-5'>Linux</b>守護(hù)<b class='flag-5'>進(jìn)程</b>詳解

    僵尸進(jìn)程的產(chǎn)生介紹和危害以及解決方法

    如果你經(jīng)常使用 Linux,你應(yīng)該遇到這個(gè)術(shù)語(yǔ)“僵尸進(jìn)程Zombie Processes”。 那么什么是僵尸進(jìn)程? 它們是怎么產(chǎn)生的? 它們
    的頭像 發(fā)表于 12-18 15:56 ?5834次閱讀
    <b class='flag-5'>僵尸</b><b class='flag-5'>進(jìn)程</b>的產(chǎn)生介紹和危害以及解決方法

    什么是僵尸進(jìn)程_Linux僵尸進(jìn)程可以被“殺死”嗎?

    首先要明確一點(diǎn),僵尸進(jìn)程的含義是:子進(jìn)程已經(jīng)死了,但是父進(jìn)程還沒(méi)有wait它的一個(gè)中間狀態(tài),這個(gè)時(shí)候子進(jìn)程是一個(gè)
    的頭像 發(fā)表于 07-28 10:09 ?4731次閱讀
    什么是<b class='flag-5'>僵尸</b><b class='flag-5'>進(jìn)程</b>_<b class='flag-5'>Linux</b><b class='flag-5'>僵尸</b><b class='flag-5'>進(jìn)程</b>可以被“殺死”嗎?

    你知道僵尸進(jìn)程是個(gè)什么東西?

    在UNIX系統(tǒng)中,僵尸進(jìn)程是指完成執(zhí)行(通過(guò)exit系統(tǒng)調(diào)用,或運(yùn)行時(shí)發(fā)生致命錯(cuò)誤或收到終止信號(hào)所致)但在操作系統(tǒng)的進(jìn)程表中仍然有一個(gè)表項(xiàng)(進(jìn)程
    發(fā)表于 04-22 17:50 ?1263次閱讀

    Linux 系統(tǒng)中僵尸進(jìn)程

    Linux 系統(tǒng)中僵尸進(jìn)程和現(xiàn)實(shí)中僵尸(雖然我也沒(méi)見(jiàn)過(guò))類似,雖然已經(jīng)死了,但是由于沒(méi)人給它們收尸,還能四處走動(dòng)。僵尸
    發(fā)表于 04-02 14:40 ?463次閱讀

    Linux數(shù)據(jù)中心服務(wù)器上的僵尸進(jìn)程怎樣正確的處理

    。雖然僵尸進(jìn)程不像運(yùn)行中的流氓應(yīng)用程序那樣占用寶貴資源,但可能會(huì)構(gòu)成威脅。
    發(fā)表于 09-30 17:29 ?893次閱讀
    <b class='flag-5'>Linux</b>數(shù)據(jù)中心服務(wù)器上的<b class='flag-5'>僵尸</b><b class='flag-5'>進(jìn)程</b>怎樣正確的處理

    Linux僵尸進(jìn)程會(huì)被殺死嗎?

    那么,根據(jù)POSIX標(biāo)準(zhǔn)關(guān)于信號(hào)(signal)的定義,當(dāng)我們執(zhí)行kill -9 4730(4730是4730和4731的TGID,也是整個(gè)進(jìn)程用戶態(tài)視角的PID)的時(shí)候,是要?dú)⑺勒麄€(gè)4730進(jìn)程的,所以這個(gè)時(shí)候4731被我們殺死,整個(gè)
    發(fā)表于 08-07 16:48 ?402次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>僵尸</b><b class='flag-5'>進(jìn)程</b>會(huì)被殺死嗎?

    linux下開(kāi)發(fā)避免僵尸進(jìn)程的方法

    進(jìn)程ID,退出狀態(tài),占用的資源等等),你可能會(huì)問(wèn),為什么這么麻煩,直接釋放完資源不就行了嗎?這是因?yàn)橛袝r(shí)它的父進(jìn)程想了解它的退出狀態(tài)。在子進(jìn)程退出但還未被其父進(jìn)程“收尸”之前,該子
    的頭像 發(fā)表于 11-11 16:38 ?774次閱讀
    <b class='flag-5'>linux</b>下開(kāi)發(fā)避免<b class='flag-5'>僵尸</b><b class='flag-5'>進(jìn)程</b>的方法

    如何查看系統(tǒng)是否有僵尸進(jìn)程

    進(jìn)程中的指令已經(jīng)執(zhí)行完成,但是進(jìn)程PCB結(jié)構(gòu)還沒(méi)有回收。   即子進(jìn)程先于父進(jìn)程退出后,子進(jìn)程的PCB需要其父
    的頭像 發(fā)表于 11-29 15:52 ?7578次閱讀
    如何查看系統(tǒng)是否有<b class='flag-5'>僵尸</b><b class='flag-5'>進(jìn)程</b>