乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      linux – 如果沒有清除Zombie狀態(tài)的任何問題?

       印度阿三17 2019-08-09

      我有生產(chǎn)單位,其中java進(jìn)程已成為僵尸并保持在那里一段時(shí)間.如果重啟設(shè)備,則會(huì)清除它.但是,該單元未重新啟動(dòng),另一個(gè)Java進(jìn)程已啟動(dòng)并正在運(yùn)行.如果這個(gè)僵尸狀態(tài)仍然沒有清除它,是否有任何問題?它會(huì)以任何方式影響(表現(xiàn)還是緩慢)?

      解決方法:

      由于Zombie進(jìn)程不會(huì)耗盡任何系統(tǒng)資源,因此僵尸進(jìn)程不會(huì)對(duì)性能或速度產(chǎn)生任何影響.

      注意: – 實(shí)際上,它仍然使用PID(這是一種有限的資源),并且仍然分配了進(jìn)程的內(nèi)核數(shù)據(jù)結(jié)構(gòu).
      通常,這并不重要,但內(nèi)核內(nèi)存使用情況可以
      在內(nèi)存非常有限的系統(tǒng)上很重要

      Problem caused by zombie process

      Each zombie process retains its process ID . Linux systems have a
      finite number of process IDs – 32767 by default on 32-bit
      systems.If zombies are accumulating at a very quick rate ,the entire
      pool of available PIDs will eventually become assigned to zombie
      processes, preventing other processes from launching.

      ??
      ??注意:在64位系統(tǒng)上,可以增加最大PID,請(qǐng)參見https://unix./a/16884/170373

      然而,一些僵尸進(jìn)程閑置是沒有問題的 – 雖然它們確實(shí)表明他們的系統(tǒng)上的父進(jìn)程存在錯(cuò)誤.

      說明:

      當(dāng)進(jìn)程在Linux上死亡時(shí),它不會(huì)立即全部從內(nèi)存中刪除 – 它的進(jìn)程描述符保留在內(nèi)存中.

      進(jìn)程的狀態(tài)變?yōu)镋XIT_ZOMBIE,并通知進(jìn)程的父進(jìn)程其子進(jìn)程已因SIGCHLD信號(hào)而死亡.

      然后,父進(jìn)程應(yīng)該執(zhí)行wait()系統(tǒng)調(diào)用以讀取死進(jìn)程的退出狀態(tài)和其他信息.這允許父進(jìn)程從死進(jìn)程中獲取信息.調(diào)用wait()后,僵尸進(jìn)程將從內(nèi)存中完全刪除.

      這通常很快發(fā)生,因此您不會(huì)在系統(tǒng)上看到僵尸進(jìn)程累積.但是,如果父進(jìn)程沒有正確編程并且從不調(diào)用wait(),那么它的僵尸孩子會(huì)在內(nèi)存中留下來直到它們被清理干凈.

      解析度:

      你不能殺死僵尸進(jìn)程,因?yàn)槟憧梢允褂肧IGKILL信號(hào)殺死正常進(jìn)程 – 僵尸進(jìn)程已經(jīng)死了.

      殺死僵尸的一種方法是將SIGCHLD信號(hào)發(fā)送給父進(jìn)程.此信號(hào)告訴父進(jìn)程執(zhí)行wait()系統(tǒng)調(diào)用并清理其僵尸子進(jìn)程.使用kill命令發(fā)送信號(hào),將下面命令中的pid替換為父進(jìn)程的PID:

      kill -s SIGCHLD pid
      

      當(dāng)創(chuàng)建僵尸的進(jìn)程結(jié)束時(shí),init繼承僵尸進(jìn)程并成為他們的新父進(jìn)程. (init是在啟動(dòng)時(shí)在Linux上啟動(dòng)的第一個(gè)進(jìn)程,并被分配了PID 1.)

      注意: – 從Linux 3.4開始,進(jìn)程可以使用PR_SET_CHILD_SUBREAPER選項(xiàng)發(fā)出prctl()系統(tǒng)調(diào)用,因此它們(而不是進(jìn)程#1)將成為其孤立后代進(jìn)程的父進(jìn)程.參見:https://unix./a/177361/5132

      然后INIT執(zhí)行wait()系統(tǒng)調(diào)用來清理它的僵尸子節(jié)點(diǎn),因此init將對(duì)僵尸進(jìn)行簡短的工作.關(guān)閉后,您可以重新啟動(dòng)父進(jìn)程.

      來源:https://www./content-3-383401.html

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多