Mga proseso ng Zombie

Nagbabasa ng isang entry mula sa masigla Naalala ko na sa isang forum ay may humiling ng tulong dahil mabagal ang kanilang system, ang ilan sa mga solusyon ay nakatuon sa mga proseso.

Ang pangunahing estado ng mga proseso sa Linux ay:
Natutulog (S) : Mga proseso na naghihintay ng kanilang oras upang maisagawa.
Tumatakbo (R) : Mga proseso na tumatakbo.
Naghihintay (D) : Mga proseso na naghihintay para sa isang Entry / Exit na operasyon upang makumpleto.
Zombie (Z) : Mga proseso na natapos ngunit patuloy na lilitaw sa talahanayan ng proseso. Maaari silang sanhi ng mga error sa pagprogram at maaaring maging sintomas ng isang mabagal o sistemang nagdudulot ng problema.

Ang isang proseso ng Zombie ay hindi kailanman nakatanggap ng isang senyas mula sa proseso ng magulang na lumikha nito, ang proseso ng isang bata ay nagmula sa isang mas mataas na antas na proseso na kilala bilang proseso ng magulang na namamahala sa pagpapadala ng mga signal sa mga proseso ng bata na nabuo. sa pamamagitan nito upang ipahiwatig na ang kanilang haba ng buhay ay natapos na.

Maaari silang sanhi ng mga error sa pagprogram at maaaring maging sintomas ng isang mabagal o sistemang nagdudulot ng problema. Karaniwang nangyayari ang sitwasyong ito, dahil din sa ilang pagsasaayos ay hindi inisip ng developer.

Maaari kang sa Wikipedia magbasa pa tungkol sa mga prosesong ito.

Pagpapatupad ng nangungunang utos na maaari nating makita sa real time ang mga proseso na tumatakbo sa system, at ipahiwatig nito kung mayroong anumang nasa isang estado ng zombie, ngunit hindi ito nagpapahiwatig kung alin ang alinman.

paraan

Upang makita ang lahat ng mga proseso, mag-type sa terminal: ps aux, at upang makita lamang ang mga zombie: ps -el | grep 'Z'o ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]'

alf @ Alf ~ $ ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]'

Z1945

Kung, kapag nakalista ang mga proseso, lumilitaw ang isang may katayuang Z, nangangahulugan ito na ito ay isang zombie, na nangangahulugang ang application ay hindi malulutas nang maayos o may mga bug, alam na ang PID nito ay maaaring matanggal sa pamamagitan ng pagpapatupad ng isang utos na katulad ng, sa terminal, sa halimbawang ito: 

alf @ Alf ~ $ pumatay -9 1945

Kapag mayroon kang maraming mga proseso ng zombie o hindi bababa sa isa, maaari mong gamitin ang sumusunod na utos na pumatay sa kanila, gagana lamang ito para sa iyo, kung patakbuhin mo ito nang walang mga proseso ng zombie walang mangyayari:

alf @ Alf ~ $ sudo pumatay -HUP `ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]' | awk '{print $ 2}' ''

Regards


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   angkop dijo

    ????

  2.   Oscar dijo

    Salamat, napakahusay na kontribusyon, i-save ko ang mga utos upang gumawa ng mga pana-panahong pagsusuri.

  3.   Magbiro dijo

    Salamat, magandang artikulo.

  4.   msx dijo

    Isang pares ng mga paglilinaw hinggil sa iyong artikulo:

    Ang terminong "proseso ng Zombie" ay hindi naaangkop sa teknikal at sa atin na may kaunting karanasan sa GNU / Linux ay dapat iwasang gamitin ito dahil walang proseso na tumatakbo sa sarili nito, ngunit ito ay isang sanggunian lamang sa isang proseso na wala na sa system at hindi niya pinakawalan ang kanyang identifier.

    Ang isang "proseso ng zombie" ay talagang ang pagpasok sa talahanayan ng pagmamapa ng identifier ng proseso (proseso ng pagsasalarawan), ganoon lamang, kaya't hindi nito natupok ang mga mapagkukunan na lampas sa ilang mga byte ng memorya na ginagamit ng system upang subaybayan ang talahanayan ng proseso.

    Ang nag-iisang problema na maaaring may ghost (o zombie) na naglalarawan ng rehistro ay kung masyadong mabilis silang nagbubuhat maaari nilang sakupin ang teoretikal ang buong proseso ng talahanayan ng paglalaan ng deskriptor na iniiwan ang system nang walang puwang para sa mga bagong rekord kung kaya't imposibleng magpatakbo ng mga bagong programa -No itala ang kanilang mga proseso- kalaunan nabitin ang makina.

    Gayunpaman, ito ay halos imposibleng mangyari dahil sa 32-bit na mga system mayroong 32767 mga puwang upang irehistro ang mga proseso (bihira o hindi kailanman ginamit) at dalawang beses sa isang 64-bit na system.

    Ang tanging paraan lamang upang makagawa ng isang pag-crash ng system na may mga patay na proseso na hindi tinanggal ay ang paglikha ng mga proseso at pumatay sa kanila nang hindi wastong paglilinis ng proseso ng pagsasalarawan (iyon ay, paglikha ng "mga proseso ng zombie") ngunit, harapin natin ito, kung may nais na mag-hang ang system ay may higit na direktang mga paraan kaysa doon. upang simulang lumikha ng mga bagong proseso nang mabilis sa isang exponential na paraan na siksikan ang system at isabit ito; isa sa mga paraan upang makamit ito sa isang fork bomb:

    : () {: |: &};:

    Maaari mong gawin ang system na medyo lumalaban sa isang fork bomb sa pamamagitan ng pag-configure nang tama /etc/security/limits.conf, bagaman dapat isaalang-alang na mas nalilimitahan natin ang posibilidad na lumikha ng mga bagong proseso, magagawa naming magpatakbo ng mas kaunting mga application kasabay sa aming system. Gayunpaman, ito ay isang wastong tool para sa lahat ng paranoid sysadmin na nais magkaroon ng napakahusay na kontrol sa kanilang mga system!

    Ang artikulong ito ay may magandang impormasyon sa mga hindi wastong paglalarawan ng proseso:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    At dito mayroong isang malinaw na paliwanag kung paano gumagana ang isang fork bomb: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    jotaele dijo

      msx: «Ang terminong" proseso ng Zombie "ay hindi naaangkop sa teknikal at ang mga sa amin na may kaunting karanasan sa GNU / Linux ay dapat iwasang gamitin ito ...» Ha ha ha. Mayroon lamang isang bagay na mas malaki kaysa sa iyong pagmamataas: ang iyong masamang lasa. Hoy, ang ginawa mo ay nasa masamang lasa, kung nais mong magbigay ng isang panayam, kumuha ng isa sa guro, o ilagay ang iyong sariling blog at isulat kung ano ang gusto mo, ngunit ang pagpunta dito upang iwasto ang patag sa mabuting Alf ay talagang nasa masamang lasa .

      1.    Ferdinand Rojas dijo

        Ang katotohanan ay tila sa akin isang medyo nakawiwiling komento. Higit pa sa post

  5.   platonov dijo

    maraming salamat.

  6.   Nabulok87 dijo

    mahusay na artikulo salamat

  7.   Alf dijo

    msx
    "Ang term na" proseso ng Zombie "ay hindi naaangkop sa teknikal at sa atin na may kaunting karanasan sa GNU / Linux ay dapat na iwasang gamitin ito"

    Aabisuhan namin ang mga developer, dahil tulad ng makikita mo, ginagamit din ang term na zombie, doon ko ito binasa sa console.

    Regards

  8.   lungsod dijo

    Binabati kita, napakahusay na artikulo, palagi akong may pag-aalinlangan na sila ang mga PZ ngunit wala pa akong oras upang mag-imbestiga, ngayon pumunta ako sa pahina at nahahanap ko ang sagot salamat …….

  9.   truko22 dijo

    Sa KDE na may kontrol + makatakas na mga aktibidad ng system ay lumabas at maaari naming mabilis na pumatay ng mga zombie.

  10.   Ulan dijo

    Isang pagwawasto, ito ay isang ZOMBIE hindi isang proseso ng ZOMBIE
    Zombie ay nasa ingles
    Zombi sa espanyol

  11.   elynx dijo

    Luxury, salamat!.

  12.   Roberto dijo

    Una, ang terminong proseso ng zombie ay tila ganap na tama. Gayundin ang term ay ang hindi gaanong mahalaga.
    Ang punto ay na tulad ng ipinahiwatig ng msx, at ang parehong wikipedia (binasa ko ang artikulo) ang proseso ng zombie ay talagang patay.
    «Kapag natapos ang isang proseso, ang lahat ng memorya nito at mga nauugnay na mapagkukunan ay na-disferensyado, upang magamit sila ng iba pang mga proseso. Gayunpaman, mananatili pa rin ang proseso ng pagpasok sa proseso ng talahanayan »
    Iyon ay, ang proseso ay hindi na kumukuha ng mga mapagkukunan ng system, samakatuwid ang pag-load sa system ay minimal, tulad ng ipinaliwanag ng msx.
    Gayunpaman, ang tanging bagay na mayroon ito ay isang hindi wastong pagpasok sa proseso ng talahanayan ... kung saan, kung libu-libo sa kanila, marahil ito ay isang karga (pagkatapos ng lahat, kailangang basahin ng processor ang talahanayan ng proseso at magbabasa ito maraming walang kwentang impormasyon) bilang karagdagan sa sumasalamin ng hindi magagandang kasanayan sa pagprograma (may gumagawa ng hindi magandang ginawa na mga application).
    Ngunit sa sarili nitong ang paliwanag ng post ay hindi masyadong tama at ang tamang isa ay ang ibibigay ng msx.