Процесс зомби , которые не должен использовать любые ресурсы (ОЗУ и ЦП), является коробление вверх весь сердечника на моей 8-ядерной 64-битной Ubuntu 11.10 Desktop установки.
Это вывод 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>
... и вот выдержка из 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
Вот как возник процесс зомби:
- Я открыл Java JAR под названием minecraft.jar . Этот модуль запуска загружает другой файл JAR в ~ / .minecraft / bin / minecraft.jar
- Этот JAR выполнялся, когда я заблокировал свой компьютер
xscreensaver
. - Затем я ввел свой пароль, чтобы разблокировать компьютер, и увидел, что окно Minecraft было заморожено.
- Я пытался убить его (PID 10317) с
gnome-system-monitor
. Это стало зомби. kill -9 10317
был неэффективен.xkill
закрылось только окно под названием «Майнкрафт»; это не закрыло основнойjava
процесс.
Релевантная информация:
- Графический драйвер - FGLRX , и он вызвал пресловутые проблемы с Unity of Ubuntu 11.04 и Ubuntu 11.10 , включая иногда высокую загрузку процессора
Xorg
иcompiz
.
Я хочу знать:
- Как можно разрушить этот процесс,
java
не перезапуская его? - Почему эта проблема происходит?
- Что я могу сделать, чтобы эта проблема не повторилась?
Ответы:
Процесс уже переписан
init
, поэтому его нужно пожинать (иначе, скорее всего, решение будет убить его родителя). Похоже, застрял вexit
зависимости отWCHAN
поля.На самом деле это может быть что-то (например, создание дампа ядра), которое закончится и само исчезнет. К сожалению, он, вероятно, вращается в ядре из-за сломанного драйвера, и, в конечном счете, единственным вариантом будет перезагрузка.
источник
Ты пробовал
sudo kill -SIGCHLD 1
? Если это не работает, вам нужно перезагрузить систему.Подробнее об этом: /programming/6335730/zombie-process-cant-be-killed и /server/89759/init-never-reaping-zombie-defunct-processes
источник
Процессы зомби умерли, но еще не были очищены («пожинать» - правильный термин) и, следовательно
kill
, не работают с ними, как обычный процесс. Процесс все еще находится в таблице процессов, но когда это зомби, ресурсы были перераспределены.Вы можете попытаться отправить
SIGCHLD
сигнал родителю процесса, в противном случае init должен был бы поднять его и в конце концов пожнет его. Если вы хотите ускорить процесс, вы можете просто перезагрузиться.источник
Это ошибка ядра. Вы используете ecryptfs для шифрования вашего домашнего каталога? Об этом сообщается об ошибке на launchpad.net.
источник