Zombi procesi

Čitanje unosa iz elav Sjetio sam se da je na forumu neko tražio pomoć, jer je njihov sistem 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 da se izvrše.
Trčanje (R) : Procesi koji su pokrenuti.
Čekanje (D) : Procesi koji čekaju da se završi operacija ulaska / izlaska.
Zombi (Z) : Procesi koji su završili, ali se i dalje pojavljuju u tablici procesa. Mogu biti uzrokovane programskim greškama i mogu biti simptom usporenog ili sistema koji uzrokuje probleme.

Zombi proces je onaj koji nikada nije primio signal od roditeljskog procesa koji ga je kreirao, podređeni proces je onaj koji vodi svoje podrijetlo u procesu više razine koji je poznat kao nadređeni proces koji je odgovoran za slanje signala dječjim procesima generiranim to ukazuje da je njegov životni vijek završio.

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

U Wikipediji možete Čitaj više o ovim procesima.

Izvršavajući gornju naredbu možemo u stvarnom vremenu vidjeti procese koji se izvršavaju u sistemu, a ona će naznačiti ima li ih u zombi stanju, ali ne i koji je to.

proces

Da biste vidjeli sve procese, unesite u terminal: ps auxi da vidite 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 grešaka, znajući da se njen PID može eliminirati izvršavanjem u terminalu naredbe slične u ovom primjeru: 

alf @ Alf ~ $ ubiti -9 1945

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

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

Saludos


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

14 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   pravi rekao je

    🙁

  2.   Oscar rekao je

    Hvala, vrlo dobar doprinos, spremit ću naredbe kako bih vršio povremene provjere.

  3.   josh rekao je

    Hvala, lijep članak.

  4.   MSX rekao je

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

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

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

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

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

    Jedini način da zaustavite sistem s loše uklonjenim mrtvim procesima je stvoriti procese i brzo ih ubiti bez pravilnog čišćenja deskriptora procesa (to jest, stvaranja "zombi procesa"), ali, priznajmo, ako netko želi objesiti postoje mnogo direktniji načini od toga. započeti brzo stvaranje novih procesa na eksponencijalni način koji zaglavljuju sistem i vješaju ga; jedan od načina da se to postigne vilicom bombom:

    : () {: |: &};:

    Možete učiniti sistem relativno otpornim na viljušku 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 sistemu. Međutim, to je valjan alat za sve paranoične sysadmine koji žele imati vrlo finu kontrolu nad svojim sistemima!

    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 sa vilicama: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    Jotaele rekao je

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

      1.    Fernando Rojas rekao je

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

  5.   platonov rekao je

    hvala vrlo zanimljivo.

  6.   Rots87 rekao je

    odličan članak hvala

  7.   Alf rekao je

    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.

    Saludos

  8.   Citux rekao je

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

  9.   truko22 rekao je

    U KDE-u sa sistemom za upravljanje + sistem za bijeg se isključuju i te zombije možemo brzo ubiti.

  10.   kiša rekao je

    Ispravka, to je ZOMBIE, a ne ZOMBIE postupak
    Zombi je na engleskom
    Zombi na španskom

  11.   Elynx rekao je

    Luksuz, hvala!

  12.   Roberto rekao je

    Prvo, pojam zombi procesa izgleda potpuno tačno. Takođe je pojam najmanje važan.
    Poanta je u tome što kao što msx ukazuje, a ista wikipedia (čitao sam članak), zombi proces je zaista mrtav.
    «Kada proces završi, sva njegova memorija i pridruženi resursi dereferenciraju se, tako da ih mogu koristiti drugi procesi. U svakom slučaju, unos procesa u tablici procesa i dalje ostaje »
    Odnosno, proces više ne zauzima sistemske resurse, stoga je opterećenje sistema minimalno, kako objašnjava msx.
    Međutim, jedino što ima je nevaljani unos u tablici procesa ... što bi, ako ih ima na tisuće, moglo biti opterećenje (uostalom, procesor mora pročitati tablicu procesa i čitao bi puno beskorisnih informacija), osim što odražava lošu praksu programiranja (neko pravi loše napravljene aplikacije).
    Ali samo po sebi objašnjenje posta nije toliko tačno i ispravno bi bilo ono koje je dao msx.