Proces zombie , których nie należy używać żadnych zasobów (pamięci RAM i CPU), jest wyginanie się cały rdzeń na moim 8-core 64-bitowego Ubuntu 11.10 instalacji Desktop.
To jest wynik ps -el|grep Z
:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 Z 1000 10317 1 99 80 0 - 0 exit ? 19:27:15 java <defunct>
... a oto fragment top
:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10317 deltik 20 0 0 0 0 Z 100 0.0 1170:17 java <defunct>
1424 root 20 0 612m 193m 158m S 14 2.4 287:17.11 Xorg
12580 deltik 20 0 710m 135m 46m S 5 1.7 27:31.07 compiz
Oto jak powstał proces zombie:
- Otworzyłem JAR Java o nazwie minecraft.jar . Ten program uruchamiający pobiera inny plik JAR do ~ / .minecraft / bin / minecraft.jar
- Ten plik JAR był wykonywany, gdy zablokowałem komputer
xscreensaver
. - Następnie podałem hasło, aby odblokować komputer, i zobaczyłem, że okno Minecraft zostało zamrożone.
- Próbowałem go zabić (PID 10317)
gnome-system-monitor
. Stało się zombie. kill -9 10317
był nieskuteczny.xkill
tylko zamknął okno zatytułowane „Minecraft”; nie zamknęło to podstawowegojava
procesu.
Istotna informacja:
- Sterownik graficzny to FGLRX i spowodował on często występujące problemy z Unity z Ubuntu 11.04 i Ubuntu 11.10 , w tym czasami wysokie użycie procesora
Xorg
icompiz
.
Chcę wiedzieć:
- W jaki sposób można zniszczyć ten proces
java
bez ponownego uruchamiania, jeśli taki istnieje? - Dlaczego ten problem się dzieje?
- Co mogę zrobić, aby zapobiec ponownemu wystąpieniu tego problemu?
Odpowiedzi:
Proces ten został już powtórnie odtworzony
init
, więc należy go wykorzystać (w przeciwnym razie rozwiązaniem byłoby zabicie jego rodzica). Wygląda na to, że utknął wexit
zależności odWCHAN
pola.Może faktycznie robi coś (jak tworzenie zrzutu pamięci), który zakończy się i zniknie sam. Niestety prawdopodobnie obraca się w jądrze z powodu zepsutego sterownika i ostatecznie jedyną opcją będzie ponowne uruchomienie.
źródło
Próbowałeś
sudo kill -SIGCHLD 1
? Jeśli to nie zadziała, musisz ponownie uruchomić system.Więcej na ten temat: /programming/6335730/zombie-process-cant-be-killed oraz /server/89759/init-never-reaping-zombie-defunct-processes
źródło
Procesy zombie umarły, ale nie zostały jeszcze oczyszczone (zbieranie jest właściwym terminem), a zatem
kill
nie działa na nich jak normalny proces. Proces nadal znajduje się w tabeli procesów, ale gdy jest on zombie, zasoby zostały anulowane.Możesz spróbować wysłać
SIGCHLD
sygnał do rodzica procesu, w przeciwnym razie init powinien go odebrać i w końcu go zbierze. Jeśli chcesz przyspieszyć proces, możesz po prostu zrestartować komputer.źródło
To jest błąd jądra. Czy używasz ecryptfs do szyfrowania katalogu domowego? Na stronie launchpad.net zgłoszono błąd.
źródło