14 октября 2008

Как получить состояние любого локального / удалённого java процесса

Данная задача является особенно актуальной для серверной части, где у вас на одной машине может в фоновом режиме выполнятся несколько Java процессов.
Для того что бы определить как выполняется определённый процесс надо знать его pid (process Id). Вы можете получить его из диспечера задач (в windows) , команд ps или top в линуксе, но поиски этим методом могут занять не мало времени.
Существует специальная команда, получающая список всех работающих процессов на определённой JVM :
$JAVA_HOME/bin/jps

Первая колонка - это и есть pid запущенных Java процессов.
C помощью следующей команды мы сможем получить stacktrace (характеристику текущего состояния) всех запущенных процессов, либо определённого процеса :

$JAVA_HOME/bin/jstack
[pid]

Комментариев нет: