„Jest 1 proces zombie”

33

Ten komunikat pojawia się, gdy loguję się do mojego komputera ...

There is 1 zombie process.
  • Co mi to mówi?
  • Czy powinienem się tym martwić?
  • Jeśli tak, to co powinienem zrobić i jak?
John Mee
źródło
19
Czy masz w pobliżu strzelbę z podwójną lufą?
EEAA

Odpowiedzi:

28

Nie ma się czym martwić :

Zambi

W systemach operacyjnych Unix proces zombie lub proces zlikwidowany to proces, który zakończył wykonywanie, ale nadal ma wpis w tabeli procesów, umożliwiając procesowi, który go uruchomił, odczytanie statusu wyjścia. W kolorowej metaforze tego terminu proces potomny umarł, ale nie został jeszcze wykorzystany.

Po zakończeniu procesu cała pamięć i związane z nim zasoby są zwalniane, aby mogły zostać wykorzystane przez inne procesy. Jednak wpis procesu w tabeli procesów pozostaje. Rodzicowi wysyłany jest sygnał SIGCHLD wskazujący, że dziecko zmarło; moduł obsługi tego sygnału zwykle wykonuje wywołanie systemowe wait, które odczytuje status wyjścia i usuwa zombie. Następnie można ponownie użyć identyfikatora procesu zombie i wpisu w tabeli procesów. Jeśli jednak rodzic zignoruje SIGCHLD, zombie pozostanie w tabeli procesów. W niektórych sytuacjach może to być pożądane, na przykład jeśli rodzic utworzy inny proces potomny, gwarantuje, że nie zostanie mu przydzielony ten sam identyfikator procesu.

Źródło: http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process

Marc-Andre R.
źródło
Dzięki Marc dobry opis; teraz jak mam to znaleźć, dowiedzieć się, czy ją zachować, a jeśli nie, to usuń ją (i wiadomość).
John Mee,
Zwykle same się uruchamiają, jeśli to naprawdę cię irytuje, możesz zrestartować komputer lub znaleźć PID procesu nadrzędnego i go zabić, ale zależy to od tego, co pozostawia zombie za sobą, co może być problematyczne z zabiciem tego konkretnego procesu.
Marc-Andre R.,
2
Nie zapomnij przyjąć mojej odpowiedzi, jeśli to jest prawdziwa odpowiedź na twoje pytanie;) dzięki!
Marc-Andre R.
10
Przepraszamy, odpowiedziałeś tylko na pierwszą część jego pytania. Nadal nie jest jasne, czy należy się tym martwić i co z tym zrobić.
0

Jak wyjaśniono w zaakceptowanej odpowiedzi, masz proces, który zakończył wykonywanie, ale nadal znajduje się w tabeli procesów: https://serverfault.com/a/390216/48449

Nie powinno to powodować szkód, jeśli jest to tylko jeden proces, ale nadal nie powinno się zdarzyć. Jeśli jest ich zbyt wiele i nie zrestartujesz ani nie zrestartujesz powodującego je procesu nadrzędnego, możesz osiągnąć maksymalną liczbę dozwolonych procesów i spowodować poważne problemy.

Aby dowiedzieć się, czy zmartwienie jest odpowiednie i do jakiego innego procesu należy zombie, działa to dla mnie:

ps -elf --forest | grep -C5 '<[d]efunct>'

W razie potrzeby zwiększ liczbę linii kontekstu, aby dowiedzieć się o procesie nadrzędnym, najlepiej napraw ten proces, aby „zbierał” zakończone podprocesy.

exic
źródło