Privind și ucide procese zombie efectua configurarea și întreținerea serverelor

Ce este?
Acest proces de copil în Unix -system, a finalizat executarea sa, dar încă prezentă în lista de procese ale sistemului de operare pentru a da procesului părinte este codul complet. Procesul de la sfârșitul anului eliberează toate resursele (cu excepția PID - ID-ul de proces) și devine un „zombie“ - o intrare goală în tabelul de proces, care memorează codul de finalizare a procesului părinte.
Sistemul notifică procesul părinte finalizarea copilului printr-un semnal SIGCHLD. Se presupune că, după primirea SIGCHLD el crede codul de retur folosind apelul sistem wait (). după care zombi va fi șters din lista de procese. Dacă părintele ignoră SIGCHLD (și este ignorat în mod implicit), apoi zombie rămâne până la finalizarea acestuia.

Și acum se pune întrebarea: cum este că vor găsi și ucide? Găsiți-le foarte ușor. Iată câteva opțiuni:

1)
top | grep zombie
225 procese: 1 de funcționare, 222 de dormit, 2 zombie

3)
ps -alx | awk „$ de 10

În ceea ce privește „crima“, ei nu pot pur și simplu să-l omoare. Cea mai bună opțiune - pentru a găsi procesul părinte și reporniți-l. Unele pot recomanda și repornirea sistemului, dar aceasta nu este o opțiune.

Găsiți procesul părinte:

ps ajx | grep -w Z
rădăcină 3994 3992 3992 3992 0 Z. 16: 23.02
rădăcină 3995 3992 3992 3992 0 Z. 13: 43,28

A treia coloană arată doar pid procesul părinte. Uite ce acest proces:

De fapt, am găsit vinovatul. Acesta exilog_agent. Și apoi - sau pur și simplu bătut în cuie-mamă sau reporniți-l:

#kill -9 3992
#top | grep zombie
#

Mesaj de navigare

articole similare