Процес зомбі з використанням 100% процесора


13

Процес зомбі , який не повинен використовувати жодних ресурсів (оперативної пам’яті та процесора), приєднує все ядро на моїй 8-ядерній 64-бітній установці Ubuntu 11.10 на робочому столі.

Це вихід 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

Ось як виник процес зомбі:

  1. Я відкрив Java JAR під назвою minecraft.jar . Цей запуск завантажує інший файл JAR до ~ / .minecraft / bin / minecraft.jar
  2. Цей JAR виконував, коли я заблокував комп'ютер xscreensaver.
  3. Потім я ввів свій пароль, щоб розблокувати комп'ютер, і побачив, що вікно Minecraft застигло.
  4. Я намагався вбити його (PID 10317) за допомогою gnome-system-monitor. Це стало зомбі.
  5. kill -9 10317 виявився неефективним.
  6. xkillлише закрило вікно під назвою «Minecraft»; це не закрило основний javaпроцес.

Відповідна інформація:

  • Графічний драйвер є FGLRX , і це викликало сумнозвісні проблеми з Unity в Ubuntu 11.04 і Ubuntu 11.10 , в тому числі іноді і високого завантаження ЦП Xorgі compiz.

Я хочу знати:

  1. Який спосіб знищити цей процес javaбез перезавантаження, якщо такий є?
  2. Чому це питання відбувається?
  3. Що я можу зробити, щоб це питання не повторилося?

1
Боюся, я не можу вам особисто допомогти, але я вдячний вам за те, що ви добре зробили роботу, пояснивши, що сталося і що ви намагалися поки що!
nhinkle

7
"Ей, хлопці, ця програма використовує багато процесорного часу. До речі, вона написана на Java. Не знаю, чи є два пов'язані ???"
ta.speot.is

Швидше за все, це крутиться на замку.
Даніель Р Хікс


Також трапляється зі мною під час гри, @RedGrittyBrick - процес з Java-зомбі, який виконує банку Minecraft і зомбі всередині гри - це різні речі.
Falk

Відповіді:


8

Процес уже відремонтований init, тому його слід повторно використовувати (інакше рішення, швидше за все, буде вбити його батьків). Він, схоже, застряг exit, спираючись на WCHANполе.

Насправді це може зробити щось (наприклад, створити основний дамп), що закінчиться, і воно піде самостійно. На жаль, це, ймовірно, крутиться в ядрі через пошкоджений драйвер, і, зрештою, єдиним варіантом буде перезавантажити.


Минув це питання, але я не зміг знову створити свою проблему, особливо після оновлення FGLRX до останньої версії. Я вибрав це як найкращу відповідь, оскільки він вказує на пошкоджений драйвер і є найбільш повним.
Делтік


4

Процеси зомбі загинули, але ще не були очищені (пожинання - це правильний термін), і тому killвони не працюють на них, як на звичайний процес. Цей процес все ще знаходиться в таблиці процесів, але коли це зомбі, ресурси були виділені.

Ви можете спробувати надіслати SIGCHLDсигнал батькові процесора, інакше init повинен був його взяти і зрештою отримає. Якщо ви хочете прискорити процес, ви можете просто перезавантажити.


1

Це помилка ядра. Чи використовуєте ви encryptfs для шифрування домашнього каталогу? Про це подано помилку на startpad.net.


Ні, я вручну шифрую файли в домашньому каталозі.
Deltik
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.