Zombi procesi

Čitanje unosa iz živo Sjetio sam se da je na forumu netko tražio pomoć jer je njihov sustav bio spor, a neka od rješenja bila su usmjerena na procese.

Glavna stanja procesa u Linuxu su:
Spavanje (S) : Procesi koji čekaju svoj red za izvršenje.
Trčanje (R) : Procesi koji su pokrenuti.
Čekanje (D) : Procesi koji čekaju dovršetak operacije ulaska / izlaska.
Zombi (Z) : Procesi koji su završili, ali se i dalje pojavljuju u tablici procesa. Mogu biti uzrokovane programskim pogreškama i mogu biti simptom usporenog ili sustava koji uzrokuje probleme.

Zombi proces je onaj koji nikada nije primio signal od roditeljskog procesa koji ga je stvorio, a podređeni proces je onaj koji svoje podrijetlo ima u procesu više razine koji je poznat kao nadređeni proces koji je zadužen za slanje signala do generiranih podređenih procesa njime označava da je njihov životni vijek završio.

Mogu biti uzrokovane programskim pogreškama i mogu biti simptom usporenog ili sustava koji uzrokuje probleme. Ta se situacija obično događa, također zato što programer nije razmatrao neku konfiguraciju.

U Wikipediji možete pročitajte više o tim procesima.

Izvršavanjem naredbe top u stvarnom vremenu možemo vidjeti procese koji se izvršavaju u sustavu i ona će naznačiti postoje li ih u zombi stanju, ali ne i koji je.

proces

Da biste vidjeli sve procese, upišite u terminal: ps pomoćnii vidjeti 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

Ako se prilikom popisa procesa jedan pojavi sa statusom Z, to znači da je to zombi, što zauzvrat znači da aplikacija nije dobro riješena ili ima bugove, znajući da se njezin PID može ukloniti izvršavanjem naredbe slične, u terminalu, u ovom primjeru: 

alf @ Alf ~ $ ubiti -9 1945

Kada imate mnogo zombi procesa ili barem više od jednog, možete upotrijebiti sljedeću naredbu koja ih ubija, to djeluje samo za to, ako ga pokrenete bez zombi procesa neće se ništa dogoditi:

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

pozdravi


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   odgovarajuće dijo

    🙁

  2.   Oscar dijo

    Hvala, vrlo dobar doprinos, spremit ću naredbe za povremene provjere.

  3.   Zadirkivati dijo

    Hvala, lijep članak.

  4.   MSX dijo

    Nekoliko pojašnjenja u vezi s vašim člankom:

    Izraz "zombi proces" tehnički je neprikladan i oni od nas koji imamo malo iskustva s GNU / Linuxom trebali bismo ga izbjegavati koristiti jer sam proces ne radi, već je to samo referenca na postupak koji više ne postoji u sustav i nije objavio svoj identifikator.

    "Zombi proces" zapravo je unos u tablicu mapiranja identifikatora procesa (deskriptor procesa), samo to, tako da ne troši resurse veće od nekoliko bajtova memorije koje sustav koristi za praćenje tablice procesa.

    Jedini problem koji mogu biti s deskriptorima registra duhova (ili zombija) je taj što bi se, ako se prebrzo pojave, teoretski mogli zauzeti cijelu tablicu dodjele deskriptora procesa, ostavljajući sustav bez prostora za nove zapise, pa bi potencijalno bilo nemoguće pokretati nove programe -to bilježi njihove procese- na kraju objesi stroj.

    Međutim, to je gotovo nemoguće dogoditi se jer u 32-bitnim sustavima postoji 32767 prostora za registraciju procesa (rijetko ili nikad korišteni) i dvostruko više od 64-bitnog sustava.

    Jedini način da se sustav padne s loše uklonjenim mrtvim procesima je stvoriti procese i brzo ih ubiti bez ispravnog čišćenja deskriptora procesa (to jest, stvaranja "zombi procesa"), ali, priznajmo, ako netko želi objesiti sustava ima puno izravnijih načina od toga. za početak brzog stvaranja novih procesa na eksponencijalni način koji zaglavi sustav i objesi ga; jedan od načina da se to postigne vilicom bombom:

    : () {: |: &};:

    Sustav možete učiniti relativno otpornim na vilicu bombom ispravnim konfiguriranjem /etc/security/limits.conf, iako se mora uzeti u obzir da što više ograničavamo mogućnost stvaranja novih procesa, moći ćemo pokretati manje aplikacija istovremeno na našem sustavu. Međutim, to je valjan alat za sve paranoične sysadmine koji žele imati vrlo finu kontrolu nad svojim sustavima!

    Ovaj članak sadrži dobre informacije o nevaljanim deskriptorima procesa:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    I u ovome postoji jasno objašnjenje o tome kako radi bomba s vilicama: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    jotaele dijo

      msx: «Izraz» proces zombija «tehnički je neprikladan i oni od nas koji imaju malo iskustva u GNU / Linuxu trebali bismo ga izbjegavati koristiti ...» Ha ha ha. Postoji samo nešto veće od vašeg ponosa: vaš loš ukus. Hej, ono što si učinio je u lošem ukusu, ako želiš održati predavanje, dobiti ga na fakultetu ili postaviti vlastiti blog i napisati što želiš, ali doći ovdje da ispraviš stan u dobar Alf stvarno je lošeg ukusa .

      1.    Ferdinanda Rojasa dijo

        Istina mi se učinila prilično zanimljivim komentarom. Puno više od posta

  5.   platonov dijo

    hvala vrlo zanimljivo.

  6.   Truleži87 dijo

    izvrstan članak hvala

  7.   Alf dijo

    MSX
    «Izraz» zombi proces «tehnički je neprikladan i oni od nas koji imaju malo iskustva u GNU / Linuxu trebali bismo ga izbjegavati koristiti»

    Morat ćemo obavijestiti programere, jer kao što ćete vidjeti, koristi se i pojam zombi, tamo sam ga pročitao na konzoli.

    pozdravi

  8.   Grad dijo

    Čestitam, vrlo dobar članak, uvijek sam sumnjao da su to PZ-ovi, ali nikada nisam imao vremena istražiti, sada idem na stranicu i nailazim na odgovor hvala ......

  9.   truko22 dijo

    U KDE-u s upravljanjem + sustavom bijega aktivnosti se isključuju i te zombije možemo brzo ubiti.

  10.   kiša dijo

    Ispravak, to je ZOMBIE, a ne ZOMBIE postupak
    Zombi je na engleskom
    Zombi na španjolskom

  11.   elynx dijo

    Luksuz, hvala!

  12.   Roberto dijo

    Prvo, pojam zombi postupka čini se potpuno točnim. Također je pojam najmanje važan.
    Poanta je u tome da kao što msx ukazuje, a ista wikipedia (čitao sam članak), zombi postupak je stvarno mrtav.
    «Kada se proces završi, dereferencira se sva njegova memorija i pridruženi resursi, tako da ih drugi procesi mogu koristiti. U svakom slučaju, unos procesa u tablici procesa i dalje ostaje »
    Odnosno, proces više ne zauzima resurse sustava, stoga je opterećenje sustava minimalno, kako je objasnio msx.
    Međutim, jedino što ima je nevaljani unos u tablici procesa ... što bi, ako ih ima na tisuće, možda bilo opterećenje (uostalom, procesor mora pročitati tablicu procesa i on bi pročitao mnogo beskorisnih informacija), osim što odražavaju loše programske prakse (netko izrađuje loše izrađene aplikacije).
    Ali samo po sebi objašnjenje posta nije toliko točno i ispravno bi bilo ono koje je dao msx.