Java использует 100% CPU и не может быть остановлен
Я столкнулся с тем, что Java-процесс
- запущен без какого-либо пересмотра (пока не должно быть запущено java-приложение) и
- через некоторое время использует 100% процессора (AMD Phenom II X4)
Я убиваю его с помощью системного монитора GNOME. Через несколько секунд процесс появляется снова, снова используя 100% ЦП (состояние: спящий режим).
Я также раздражен тем фактом, что
$ jobs
ничего не возвращает. Я попробовал
sudo jobs
для удовольствия и получил сообщение
sudo: jobs: команда не найдена
но работа конечно установлена.
Я установил OpenJDK Java 6 Runtime через Центр программного обеспечения.
Как я могу
- узнать, есть ли еще запущенная программа, использующая Java
- почему процесс занимает столько процессора?
1 ответ
jobs показывает только процессы, принадлежащие текущей оболочке (это встроенная функция оболочки - и поэтому вы не можете запустить ее с помощью sudo, которая запускает только исполняемые программы). Обычно он ничего не показывает, если вы не запустили его в фоновом режиме. Увидеть help jobs,
Вы можете проверить, есть ли другие процессы Java, работающие с:
ps aux | grep java
При этом выполняется поиск любого работающего процесса, который имеет строку "java" в своей командной строке, включая grep. Вы можете устранить grep используя ps aux | grep java | grep -v grep, если ты хочешь.
Кроме того, когда процесс потребляет много ресурсов процессора, его обычно можно обнаружить с помощью программы. top, нажимая P, чтобы упорядочить по%CPU:

Вы также можете использовать M для сортировки по использованию памяти и использовать клавиши < и >, чтобы изменить текущее поле, используемое для сортировки.
Теперь, ПОЧЕМУ процесс требует много ресурсов процессора - действительно сложный вопрос, на который можно ответить в общем виде. Он может делать полезные вещи или просто зависать в бесконечном цикле, обычно только читая исходный код, который вы можете узнать, какой. Если вы рассматриваете Java JRE, который запускает плагины Java в вашем браузере, его загрузка процессора сильно зависит от природы программы, которую вы запускаете.