Ce înseamnă că există un proces zombie și ce să faceți cu el în limba rusă

Conectat la o mașină de la distanță. Văd următoarea linie în mesajul de bun venit.

Există un proces zombie.

În măsura în care înțeleg. acest lucru înseamnă că un proces și-a încheiat activitatea, dar nu a închis și nu a eliberat resurse. Aș dori să înțeleg mai bine problema:

  • Cum îl puteți găsi? Acum ghicesc, dar am nevoie de o metodă stabilă.
  • Cum puteți afla motivele apariției sale? Există jurnale? Poate, în funcție de procesul disponibil, orice poate fi înțeles?

Dacă acest lucru este important, ubuntu 14.04, sudo este.

Supliment: Nu îmi place metoda "așteptați", pentru că există un serviciu care ar trebui să funcționeze întotdeauna - și el sau unii dintre copiii săi au fost suspendați. El este asigurat prin monitorizare, dar nu a recunoscut zombificarea și nu a repornit.

presetat 19 ianuarie '16 la ora 5:37

Cum puteți afla motivele apariției sale? - părintele (încă) nu a rupt, poate, mai târziu. La finalizarea părintelui, toate procesele copilului vor fi adoptate prin procesul parental al părintelui, unde, cel mai probabil, totul va fi distrus. Procesul zombie în sine, în măsura în care îmi amintesc, nu ia nimic (literalmente înregistrarea în tabelul în sine), deci nu există progrese până acum, totul ar trebui să fie în ordine. - etki 19 ianuarie '16 la 6:10

și totul va fi distrus - toate procesele zombie care au apărut în practica mea (și s-au întâmplat foarte rar și au fost foarte mult timp în urmă) au continuat să existe până când sistemul a fost repornit. - alexander barakin 19 ianuarie '16 la 6:26

Zambi este rodul unei greșeli în părinte, el a uitat pur și simplu copilul. Dacă părintele este foarte ocupat și nu răspunde la semnale, atunci el nu poate lua codul de completare la timp. astfel încât pentru un timp foarte scurt PS poate fi, de asemenea, într-un sistem complet de service. Dar calea de ieșire este de a elimina zombi doar unul - pentru a ucide părintele. Deci va trebui să învățați monitorul pentru a înțelege zombi, pentru a recunoaște părinții. - Mike 19 ianuarie '16 la 6:35

Zombe în sistemele de operare UNIX au apelat la procese care au încetat, codul de completare a căruia nu a fost luat de procesul de bază. Zombi nu consumă resurse, memorii și descriptorii de fișiere ale unor astfel de procese sunt deja lansate. Există doar o intrare în tabelul de proces, care necesită câteva zeci de octeți de memorie. Deci, un singur proces zombie pe sistem nu afectează. DAR este un indicator evident că un proces din sistem a mers prost.

Această comandă va arăta toate procesele zombie și părinții lor (testate în linux, sub alte * nix alte chei sunt posibile pentru comanda ps).

Poți ucide un zombie numai prin repornirea procesului părinte. ucide -9 procesul de sine-zombi și usturoi nu de obicei ajuta. Dacă apariția unui zombie este un fenomen unic, atunci este probabil mai ușor să înscrieți pentru aspectul său.

Opțiunea 2: procesul părinte utilizează așteptați. dar zombi încă apar. Pentru a sapa in ce fel de asteptare este folosita, daca waitpid, care verifica finalizarea anumitor descendenti, atunci este posibil sa privim de unde trebuie sa fie verificata pid-ul, care pid descendenti sunt pierduti si programul le uita. Programul poate interzice la un moment dat procesarea semnalelor și uită să restaureze procesarea după trecerea secțiunii critice. Din nou - există o mulțime de opțiuni, dar acestea sunt concentrate în jurul manipulatorului SIGCHLD și așteaptă funcții.

Opțiunea 3: procesul părinte se poate ocupa și este pregătit să se ocupe de completarea corectă a copiilor. Dar se blochează în altă parte a programului sau adoarme la un apel sistem, cum ar fi citirea de la o unitate de rețea care a devenit indisponibilă, iar întreruperea SIGCHLD nu este permisă. În acest caz, este necesar să se înțeleagă motivele înghețării sale. Apropo, lipsa de acces la orice resurse, cum ar fi unitățile de rețea (sau eșecul unui disc fizic) este un motiv destul de frecvent pentru apariția masivă a zombiilor.

Nu există jurnale speciale în sistem, unde puteai vedea cel puțin câteva informații despre zombiile emergente. Urmele pot fi găsite numai în jurnalele programului care le generează, dacă sunt disponibile.

răspunsul dat 19 ianuarie '16 la ora 8.20