Как увидеть Java-процессы в Linux

Обновлено: 02.07.2024

Если вы хотите проверить работу java-приложения, запустите команду «ps» с параметрами «-ef», которая покажет вам не только команду, время и PID всех запущенных процессов, но и полный список, который содержит необходимую информацию о выполняемом файле и параметрах программы.

Как посмотреть все процессы в java?

Вы можете использовать java. яз. ProcessBuilder и «pgrep», чтобы получить идентификатор процесса (PID) с чем-то вроде: pgrep -fl java | хорошо . Или, если вы работаете под Linux, вы можете запросить каталог /proc.

Как просмотреть все процессы в Linux?

Проверить запущенный процесс в Linux

  1. Откройте окно терминала в Linux.
  2. Для удаленного сервера Linux используйте команду ssh для входа в систему.
  3. Введите команду ps aux, чтобы увидеть все запущенные процессы в Linux.
  4. Кроме того, вы можете ввести команду top или команду htop для просмотра запущенного процесса в Linux.

Как узнать, работает ли JVM в Linux?

Как узнать, работает ли JVM в Linux?

  1. Откройте командную строку Linux.
  2. Введите команду java -версия.
  3. Если в вашей системе установлена ​​версия Java, вы увидите ответ об установке Java.

Как проверить, работает ли JVM в Linux?

Вы можете запустить команду jps (из папки bin JDK, если она не указана в вашем пути), чтобы узнать, какие процессы Java (JVM) выполняются на вашем компьютере. Зависит от JVM и собственных библиотек. Вы можете увидеть потоки JVM с разными идентификаторами PID в ps .

Где я могу найти JVM PID?

Шаг 1. Получите PID процесса Java

  1. UNIX, Linux и Mac OS X: ps -el | grep java.
  2. Windows: нажмите Ctrl+Shift+Esc, чтобы открыть диспетчер задач и найти PID процесса Java.

Что такое ps grep Java?

ps -ef|grep $(what java) это перечислит процессы java, но только для вашей установки java по умолчанию. Если у вас установлено более одной Java, например. ваш Jboss с java7, tomcat с java6 и eclipse с java5, это не удастся. Есть еще один инструмент под названием pgrep. Вы можете попробовать, например,

Как узнать, используется ли Java?

В строке поиска введите Панель управления. Щелкните Программы. Если значок Java присутствует, значит, Java установлена. Если нет, нажмите «Программы и компоненты» и найдите установленные версии Java в каталоге J.

Что такое процесс в Linux?

В Linux процесс — это любой активный (работающий) экземпляр программы. Но что такое программа? Ну, технически программа — это любой исполняемый файл, хранящийся в памяти на вашем компьютере. Каждый раз, когда вы запускаете программу, вы создаете процесс.

Что такое идентификатор процесса в Linux?

Идентификатор процесса (идентификатор процесса или PID) — это число, используемое ядрами операционных систем Linux или Unix. Он используется для уникальной идентификации активного процесса.

Как найти идентификатор процесса в Linux?

Вы можете найти PID процессов, запущенных в системе, с помощью приведенной ниже команды девять.

Как вывести список всех процессов Java в bash? Мне нужна командная строка. Я знаю, что есть команда ps, но не знаю, какие параметры мне нужно использовать.

пожалуйста, приложите немного больше усилий, чтобы исследовать это и описать свою проблему, есть много возможностей в зависимости от того, что именно вам нужно.

18 ответов 18

и посмотреть, как у вас дела

Recent Java поставляется с инструментом состояния процесса виртуальной машины Java "jps"

Обратите внимание: jps поставляется только с JDK, но не с JRE. На компьютерах со старой простой средой выполнения Java этого инструмента не будет.

Я использую его уже много лет, однако он показывает только текущие процессы пользователя. Не все процессы на машине. Пользователь-администратор и обычные пользовательские процессы могут отличаться.

является наиболее полезным. Выводит только pid и полное имя основного класса:

Начиная с Java 7, самым простым и менее подверженным ошибкам способом является простое использование команды jcmd, которая является частью JDK, чтобы она работала одинаково во всех ОС.

Пример:

jcmd позволяет отправлять запросы диагностических команд на работающую виртуальную машину Java (JVM).

Подробнее об использовании jcmd .


Вы также можете использовать одну команду pgrep (не требует использования каналов и нескольких команд):

Для лучшего формата вывода проверьте эту команду:

Это вернет все запущенные процессы Java в среде Linux. Затем вы можете убить процесс, используя идентификатор процесса.


ps дополнительный | grep java

$ ps -fea|grep -i java

Если я хочу просто перечислить процессы Java, используйте:


Спасибо за этот фрагмент кода, который может оказать немедленную помощь. Надлежащее объяснение значительно повысило бы его образовательную ценность, показав, почему это хорошее решение проблемы, и сделало бы его более полезным для будущих читателей с похожими, но не идентичными вопросами. Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение и указать, какие ограничения и предположения применяются. В частности, почему второй из них не показывает процесс grep?

  • показать все процессы длинными строками (аргумент: www)
  • фильтровать (grep) только те строки, которые содержат слово java, и
  • отфильтруйте строку "grep java" :)

(кстати, этот пример не самый эффективный, но простой для запоминания) ;)

вы можете передать вышеуказанное другим командам, например:


Когда я хочу узнать, выполняется ли определенный класс Java, я использую следующую командную строку:

Со стороны ОС имя команды процесса — "java". Параметр "ww" расширяет максимальное количество символов в столбце, поэтому можно получить полное доменное имя связанного класса.

Это то, что я искал - $ top просто дает "java" в качестве команды, которая не так уж полезна при попытке выяснить, какой процесс загружает процессор. $ ps ww -fC java предоставляет недостающие части головоломки.

jps и jcmd не показывали мне никаких результатов, когда я пытался использовать openjdk-1.8 в redhat linux. Но даже если это так, он показывает только процессы под текущим пользователем, что не работает в моем случае. В итоге я использовал ps|grep, но путь к классу для некоторых java-приложений может быть очень длинным, что делает результаты неразборчивыми, поэтому я использовал sed для его удаления. Это все еще немного грубо, но удаляет все, кроме: PID, User, java-class/jar, args.

Результаты выглядят примерно так:

Альтернативный способ отображения всех процессов в Windows:

Но это потребует некоторого синтаксического анализа, чтобы сделать его более разборчивым.


Есть много способов сделать это. Вы можете использовать java.lang.ProcessBuilder и «pgrep», чтобы получить идентификатор процесса (PID), например: pgrep -fl java | хорошо . Или, если вы работаете под Linux, вы можете запросить каталог /proc.

Я знаю, это кажется ужасным, не переносимым и даже плохо реализованным, я согласен. Но поскольку Java на самом деле работает в виртуальной машине, по какой-то абсурдной причине, которую я не могу понять после более чем 15 лет работы с JDK, почему невозможно увидеть вещи за пределами пространства JVM, это действительно смешно с вами подумай об этом. Вы можете делать все остальное, даже разветвлять и присоединять дочерние процессы (это был ужасный способ многозадачности, когда мир не знал о потоках или pthreads, какого черта! Что происходит с Java?! :).

Присоединяйтесь к сообществу DZone и получите все возможности участника.

В этом посте мы обсудим, как быстро найти идентификатор процесса приложения Java. Для некоторых инструментов мониторинга, таких как yCrash, вам необходимо передать идентификатор процесса вашего приложения в качестве входных данных.

Поиск идентификатора процесса Java-приложения в Linux

В любой версии операционной системы Linux/Unix введите команду:


Приведенная выше команда отобразит все процессы Java, запущенные на этом компьютере, и их аргументы, идентификатор процесса и пользователя, который его запустил. Когда я ввел указанную выше команду, в моем экземпляре AWS EC2 Linux был получен следующий результат:

Рис. Команда 'ps', отображающая все процессы Java, запущенные на компьютере с Linux.

Выделение красным цветом на приведенном выше рисунке указывает на идентификаторы всех процессов Java, запущенных в этом экземпляре EC2. Отсюда вы можете получить идентификатор процесса вашего приложения.

Поиск идентификатора процесса Java-приложения в Windows

' jps ' — инструмент состояния процесса виртуальной машины Java упакован в JDK. Этот инструмент отобразит все процессы Java, запущенные на этом компьютере. Ниже приведены шаги для вызова команды ' jps ':

<р>1. Откройте командную строку.

<р>2. cd в папку ' bin ', где установлен JDK.

<р>3. Введите команду ' jps '.

Когда была введена вышеуказанная команда, вывод был следующим:


Рис. Команда 'jps', отображающая все процессы Java, запущенные на компьютере с Windows.

Выделение красным цветом на приведенном выше рисунке указывает на идентификаторы всех процессов Java, запущенных в этом экземпляре Windows. Отсюда вы можете получить идентификатор процесса вашего приложения.

Примечание: В отличие от команды ' ps ' в Linux (пример приведен выше), вы не увидите все аргументы процесса Java.Одним из недостатков этого подхода является то, что jps будет отображать только первую команду процесса Java. Вы можете увидеть все аргументы процесса Java только при вводе команды ' ps '.

приложение java, виртуальная машина java, jdk, aws ec2, linux, команды windows, аргументы jvm, jvm в памяти, распределители памяти, руководство

Присоединяйтесь к сообществу DZone и получите все возможности участника.

Всем привет! Сегодня я собираюсь поделиться полезным советом, чтобы узнать, как долго работает тот или иной процесс. Это очень полезно, когда вы устраняете проблему и хотите знать, нормально ли перезапускался ваш процесс или служба ежедневно или еженедельно.

В UNIX или Linux есть команды почти для всего, и если команды нет, вы можете проверить некоторые важные файлы в каталоге /etc, чтобы найти полезную информацию.

Поэтому я решил поделиться этим приятным небольшим советом, чтобы найти время выполнения процесса в системах на основе UNIX, таких как Linux и Solaris.

Команды Linux для поиска сред выполнения процессов

Как я уже сказал, нет единой команды, которая могла бы сказать нам, как долго запущен процесс. Нам нужно объединить несколько команд и наши знания систем на базе UNIX, чтобы определить время безотказной работы процесса.

Шаг 1. Найдите идентификатор процесса с помощью команды ps

Здесь 22031 — это идентификатор процесса. Кстати, если на вашем сервере запущено более одного процесса Java, вы можете использовать более конкретную команду grep для поиска PID.

Шаг 2. Найдите время выполнения или время начала процесса

Получив PID, вы можете заглянуть в каталог proc для этого процесса и проверить дату создания, когда процесс был запущен.

Проверив эту метку времени, вы можете легко определить, как долго работает ваш процесс. Чтобы проверить отметку времени любого идентификатора процесса в каталоге procs, вы можете использовать следующую команду UNIX с параметром -ld, как показано ниже:

Здесь процесс с PID 22031 запущен с 22 января, 13:09.

Если вам повезет, иногда команда ps также показывает, когда была запущена конкретная программа, как показано на следующем рисунке:


Публикуется на DZone с разрешения Джавина Пола, DZone MVB. Смотрите оригинальную статью здесь.

Читайте также: