Zombi procesi

Branje vnosa iz živahno Spomnil sem se, da je nekdo na forumu prosil za pomoč, saj je bil njihov sistem počasen, nekatere rešitve so bile osredotočene na procese.

Glavna stanja procesov v Linuxu so:
Spanje (S) : Procesi, ki čakajo na svojo izvedbo.
Tek (R) : Procesi, ki se izvajajo.
Čakanje (D) : Procesi, ki čakajo na dokončanje operacije vstopa / izstopa.
Zombi (Z) : Procesi, ki so se končali, vendar se še vedno pojavljajo v tabeli procesov. Vzročijo jih lahko programske napake in so lahko simptom počasnega sistema ali sistema, ki povzroča težave.

Zombi proces je tisti, ki nikoli ni prejel signala od nadrejenega procesa, ki ga je ustvaril, podrejeni proces je tisti, ki ima svoj izvor v procesu višje stopnje, znanem kot nadrejeni proces, ki je odgovoren za pošiljanje signalov podrejenim procesom, to pomeni, da se je njihova življenjska doba končala.

Vzročijo jih lahko programske napake in so lahko simptom počasnega sistema ali sistema, ki povzroča težave. To se običajno zgodi tudi zato, ker razvijalec ni razmišljal o določeni konfiguraciji.

V Wikipediji lahko preberi več o teh procesih.

Z izvrševanjem zgornjega ukaza lahko v realnem času vidimo procese, ki se izvajajo v sistemu, in bo pokazal, ali obstajajo v zombi stanju, ne pa tudi, kateri je.

procesu

Če si želite ogledati vse procese, vnesite v terminal: ps aux, in videti samo zombije: 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]'

Z 1945

Če se pri naštevanju procesov prikaže status s statusom Z, to pomeni, da gre za zombija, kar pa pomeni, da aplikacija ni dobro rešena ali ima napake, saj vemo, da je njen PID mogoče odpraviti z izvajanjem ukaza, podobnega , v tem primeru: 

alf @ Alf ~ $ ubiti -9 1945

Ko imate veliko zombi procesov ali vsaj več kot enega, lahko uporabite naslednji ukaz, ki jih ubije, deluje le za to, če ga zaženete, ne da bi imeli zombi procese, se ne bo zgodilo nič:

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

pozdrav


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   pravilno je dejal

    🙁

  2.   Oscar je dejal

    Hvala, zelo dober prispevek, shranil bom ukaze za redna preverjanja.

  3.   Josh je dejal

    Hvala, lep članek.

  4.   MSX je dejal

    Nekaj ​​pojasnil glede vašega članka:

    Izraz "postopek zombijev" je tehnično neustrezen in tisti, ki imamo malo izkušenj z GNU / Linuxom, bi se morali izogibati njegovi uporabi, saj sam postopek ne teče, vendar je le sklicevanje na postopek, ki v sistema in ni izdal svojega identifikatorja.

    "Zombi proces" je pravzaprav vnos v tabelo preslikave identifikatorja procesa (deskriptor procesa), le to, zato ne porablja virov, ki presegajo nekaj bajtov pomnilnika, ki ga sistem uporablja za sledenje tabeli procesov.

    Edina težava, ki jo lahko imajo deskriptorji registra duhov (ali zombijev), je ta, da bi lahko, če se hitro pojavijo, teoretično zasedli celotno tabelo dodeljevanja deskriptorjev procesa, tako da bi sistem imel prostora za nove zapise, zato bi bilo nemogoče zagnati nove programe - ki beležijo njihove procese - sčasoma obesijo stroj.

    To pa je skoraj nemogoče, saj je v 32-bitnih sistemih 32767 prostorov za registracijo procesov (redko ali nikoli uporabljenih) in dvakrat več kot v 64-bitnem sistemu.

    Edini način, da se sistem zruši z mrtvimi procesi, ki so slabo odstranjeni, je ustvariti procese in jih hitro ubiti, ne da bi pravilno očistili deskriptor procesa (to je ustvarjanje "zombi procesov"), vendar, če nekdo želi obesiti Obstaja veliko bolj neposrednih načinov od tega. začeti hitro ustvarjati nove procese na eksponentni način, ki zatakne sistem in ga obesi; eden od načinov, kako to doseči z vilico:

    : () {: |: &};:

    S pravilno konfiguracijo /etc/security/limits.conf lahko naredite sistem razmeroma odporen proti vilicam, čeprav je treba upoštevati, da bolj ko bomo omejevali možnost ustvarjanja novih procesov, bomo lahko izvajali manj aplikacij hkrati pa v našem sistemu, vendar je veljavno orodje za vse paranoične sysadmine, ki želijo imeti zelo dober nadzor nad svojimi sistemi!

    Ta članek vsebuje dobre informacije o neveljavnih deskriptorjih postopkov:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    In v tem je jasna razlaga, kako deluje vilična bomba: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    jotaele je dejal

      msx: «Izraz» postopek zombijev «je tehnično neustrezen in tisti, ki imamo malo izkušenj z GNU / Linuxom, bi se morali izogibati njegovi uporabi ...» Ha ha ha. Od vašega ponosa je le nekaj večjega: vaš slab okus. Hej, tisto, kar si naredil, je slabega okusa, če želiš predavati, ga dobiti na fakulteti ali postaviti svoj blog in napisati, kar hočeš, toda če prideš sem popravljati stanovanje do dobrega Alfa, je res slabega okusa .

      1.    Ferdinanda Rojasa je dejal

        Resnica se mi je zdela precej zanimiv komentar. Veliko več kot objava

  5.   platonov je dejal

    hvala zelo zanimivo.

  6.   Gnilobe87 je dejal

    odličen članek hvala

  7.   Alf je dejal

    MSX
    «Izraz» postopek zombijev «je tehnično neustrezen in tisti, ki imamo malo izkušenj z GNU / Linuxom, bi se morali izogibati njegovi uporabi»

    Obvestiti bomo morali razvijalce, saj, kot boste videli, se uporablja tudi izraz zombi, tam sem ga prebral na konzoli.

    pozdrav

  8.   Mesto je dejal

    Čestitke, zelo dober članek, vedno sem dvomil, da gre za PZ, vendar nikoli nisem imel časa za preiskavo, zdaj grem na stran in naletim na odgovor hvala ......

  9.   truko22 je dejal

    V KDE s sistemom nadzor + pobeg ugasnejo in te zombije lahko hitro ubijemo.

  10.   Dež je dejal

    Popravek, to je ZOMBIE in ne ZOMBIE postopek
    Zombie je v angleščini
    Zombi v španščini

  11.   elynx je dejal

    Razkošje, hvala!

  12.   Roberto je dejal

    Prvič, izraz zombi postopek se zdi popolnoma pravilen. Tudi izraz je najmanj pomemben.
    Bistvo je v tem, da kot nakazuje msx in ista wikipedia (prebral sem članek), je postopek zombija resnično mrtev.
    «Ko se postopek konča, se odstranijo vsi spomin in z njim povezani viri, tako da jih lahko uporabijo drugi procesi. Kakorkoli že, vnos procesa v tabeli procesov še vedno ostaja »
    To pomeni, da postopek ne zajema več sistemskih virov, zato je obremenitev sistema minimalna, kot je pojasnil msx.
    Edina stvar, ki jo ima, je neveljaven vnos v tabelo procesov ... kar bi bilo, če bi jih bilo na tisoče, morda obremenitev (navsezadnje mora procesor prebrati tabelo procesov in bi prebral veliko neuporabnih informacij), poleg tega pa odraža slabe prakse programiranja (nekdo dela slabo izdelane aplikacije).
    Ampak sama po sebi razlaga objave ni tako pravilna in pravilna bi bila tista, ki jo poda msx.