Ponieważ jestem nowicjuszem w systemach Linux / Unix i czytam o procesach zombie , mam jedno pytanie. Mam ich teraz 10. Czy muszę je zabić, a jeśli tak, dlaczego? Czy są obciążeniem dla mojego systemu?
592 processes: 581 sleeping, 1 running, 10 zombie, 0 stopped
Odpowiedzi:
Nie możesz zabić zombie, jest już martwy.
Zasoby tego procesu są bezpłatne i dostępne dla innych procesów. Pozostaje wpis w tabeli procesów. Nie ma to wpływu na wydajność, nie martw się.
źródło
/proc/sys/kernel/pid_max
, tak jak każdy inny identyfikator PID.Źródło: http://www.linuxsa.org.au/tips/zombies.html
A jeśli masz ochotę na zabójstwo, ten wątek superużytkownika może być dla Ciebie interesujący: Jak znaleźć proces macierzysty procesu zombie?
źródło
Nie musisz ich zabijać.
Aby uzyskać podstawowe zrozumienie:
Każdy proces jest potomkiem procesu nadrzędnego (z wyjątkiem procesu init, ale nie musimy się tym martwić).
Gdy proces potomny kończy wykonywanie, może nadal zawierać dane, do których proces macierzysty chce uzyskać dostęp, zwykle kod wyjścia opisujący wynik procesu potomnego (Czy to się udało? Czy to błąd? Jaki był kod błędu?).
Gotowy proces potomny pozostaje w tabeli procesów jako proces zombie, dopóki proces nadrzędny nie „zbierze” lub nie zaczeka na procesie potomnym, który jest po prostu procesem nadrzędnym informującym system operacyjny, że nie potrzebuje już tego procesu potomnego; Odczytuje wszystkie zwracane wartości, które chce i jest z tym zrobiony. W tym momencie system wyczyści wpis w tabeli procesów.
źródło
Ten proces nie musi być zabity.
Na wszelki wypadek, jeśli chcesz go zabić (z dowolnego powodu), strzelaj w głowę, oto przydatne polecenie:
Od https://www.erianna.com/kill-a-linux-zombie-process
źródło
shoot at the head
.