Ukončení zombie procesu v prostředích Linux

Summary: Co je to zombie proces, jak ho najít a jak ho zabít nebo ukončit.

Ez a cikk a következő(k)re vonatkozik: Ez a cikk nem vonatkozik a következő(k)re: Ez a cikk nem kapcsolódik egyetlen konkrét termékhez sem. Ez a cikk nem azonosítja az összes termékverziót.

Instructions

Co je to zombie proces:
Je to proces, který skončil, ale ne celý je okamžitě odstraněn z paměti, protože jeho deskriptor procesu zůstává v paměti.

Jaké by mělo být normální chování procesu:
Když proces skončí, stav procesu se změní na EXIT_ZOMBIE a nadřazený proces je upozorněn, že jeho podřízený proces zemřel s SIGCHLD signál.

Nadřazený proces by pak měl spustit wait() Systémové volání přečte stav ukončení mrtvého procesu a další informace. Po wait() se volá, zombie proces je odstraněn z paměti. To se děje rychle, takže nevidíte, že by se ve vašem systému hromadily zombie procesy. Ale v případech, kdy vidíme, že se hromadí několik zombie procesů, jedná se o situaci, kdy programový kód není efektivní.

Jak najít zombie procesy:
Spuštění příkazu top
výsledky z příkazu Top

Spuštění příkazu ps -ef | grep defunct
Výsledek nefunkčního příkazu

Jak ukončit akumulující se zombie procesy:
Ve většině případů mají zombie procesy stejné ID nadřazeného procesu.

Proces lze odstranit dvěma způsoby:
  • Odešlete SIGCHLD signál nadřazenému procesu.
Tento signál říká nadřazenému procesu, aby spustil wait() systém volání a vyčistit své zombie děti:
kill -s SIGCHLD <PPID>
Příklad:
kill -s SIGCHLD 2201
  • Ukončete zombie rodičovský proces
kill -9 <PPID>
Příklad:
kill -9 2201

Érintett termékek

Dell OpenManage Enterprise, NetWorker Series
Termék tulajdonságai
Article Number: 000019108
Article Type: How To
Utoljára módosítva: 12 ápr. 2025
Version:  4
Választ kaphat kérdéseire más Dell-felhasználóktól
Támogatási szolgáltatások
Ellenőrizze, hogy a készüléke rendelkezik-e támogatási szolgáltatással.