Узнайте, что запускает процессы по команде

Моя машина продолжает запускать процессы с помощью команды «java» (она указана в столбце «команда» вверху), которая продолжает поглощать все мои ресурсы в течение нескольких секунд, а затем исчезает, через несколько секунд запускается новый, с другим PID.

Я хочу знать, что запускает эти процессы Java.

Я получил некоторую информацию от выполнения top -> c, которая показывает команду полного процесса java:

11470 neil 20 0 4616088 2.134g 19156 S 121.9 57.1 0: 04.20 /opt/jdk-11.0.1/ bin / java -Xms1g -Xmx1g -XX: + UseConcMarkSweepGC -XX: CMSInitiatingOccupancyFr +

Однако для меня это ничего не значит. Не знаю, поможет ли это.

Другие ответы и вещи, которые я уже пробовал:

Я видел этот ответ Как я могу найти источник процесса и остановить его навсегда? который упоминает поиск каталога proc / PID. Несколько других подобных вопросов дают этот совет. Но это не помогает мне, так как PID постоянно меняется.

Я пробовал ps aux | grep java, но это показывает только сам grep:

neil~$ ps aux | grep java
neil      8539  0.0  0.0  14224   928 pts/19   S+   22:20   0:00 grep --color=auto java

Я пробовал killall Java

И это действительно убивает текущий PID, но затем через несколько секунд следующий начинается ...

Первоначально я думал, что это из-за того, что я установил Cisco AnyConnect (см. Справка по удалению стороннего программного обеспечения ). Причины, по которым я предположил, что это: а) проблема возникла, когда я установил AnyConnect и б) когда я смог убить процесс java до его исчезновения, единственной уязвимой программой, которую я мог видеть, был AnyConnect, который прекратил рендеринг большей части пользовательского интерфейса , Теперь я не уверен, потому что я удалил AnyConnect, и проблема остается.

0
задан 10 May 2019 в 23:31

4 ответа

Вы можете попробовать использовать команду pstree -p, чтобы получить информацию предка о процессах Java, которые вы пытаетесь отследить. Это выведет ASCII-описание дерева процессов, начинающегося с init, а также PID для этих процессов и может дать вам информацию о родительском процессе, который продолжает запускать java.

0
ответ дан 10 May 2019 в 23:31

Команда Java усекается с помощью top . Вы можете попробовать

ps auf | grep java 

Для перечисления всех связанных процессов. Полная команда может дать вам некоторые идеи. Кстати, команда устанавливает максимальный размер кучи в 1 Гб, поэтому она не должна по крайней мере занимать всю вашу память, если она не порождает много процессов

0
ответ дан 10 May 2019 в 23:31

Команда ps auxf из консоли предоставит вам простое «древовидное» представление процессов. Просто убей родителя.

Или в вашем случае вам лучше найти процесс до Java: с ps auxf | grep java -B11

0
ответ дан 10 May 2019 в 23:31

Я бы посоветовал посмотреть, предоставит ли утилита pspy (из https://github.com/DominicBreuker/pspy ) дополнительную информацию о недолговечных процессах и файлах, которые они пытаются доступ. Если это произойдет, это может позволить вам определить, что их создает.

0
ответ дан 10 May 2019 в 23:31

Другие вопросы по тегам:

Похожие вопросы: