Данные jconsole могут быть получены из командной строки?

Спасибо за Вашу мудрость, людей. Мой сценарий оставлял некоторые дочерние процессы на выходе и отрицание подсказка сделанный вещами легче. Я записал эту функцию, которая будет использоваться в других сценариях при необходимости:

# kill my group's subprocesses:          killGroup
# kill also myself:                      killGroup -x
# kill another group's subprocesses:     killGroup N  
# kill that group all:                   killGroup -x N
# N: PID of the main process (= process group ID).

function killGroup () {
    local prid mainpid
    case $1 in
        -x) [ -n "$2" ] && kill -9 -$2 || kill -9 -$ ;;
        "") mainpid=$ ;;
         *) mainpid=$1 ;;
    esac
    prid=$(ps ax -o pid,pgid | grep $mainpid)
    prid=${prid//$mainpid/}
    kill -9 $prid 2>/dev/null
    return
}

Аплодисменты.

31
задан MRalwasser 3 June 2013 в 15:25
поделиться

4 ответа

jconsole просто предоставляет оболочку для JMX MBeans, которые находятся на платформе MBeanServer.

Вы можете написать программу для подключения к вашей виртуальной машине, используя Attach API , который затем запросит MBeans.

Или вы можете открыть платформу MBeanServer через RMI и таким образом запросить MBean.

См. пакет java.lang.management для получения дополнительной информации

12
ответ дан 27 November 2019 в 22:28
поделиться

Взгляните на jmap , который можно использовать для получения дампа кучи с консоли.

Для данных, не включенных в дамп кучи, я считаю, что jconsole просто использует JMX для подключения к работающей JVM для получения статистики - так что, вероятно, можно создать собственное приложение, которое могло бы получать те же типы статистики из JMX.

7
ответ дан 27 November 2019 в 22:28
поделиться

jstack предлагает ряд полезных битов информации в обычном выводе. Использование памяти кучи доступно напрямую с разбивкой по регионам GC; количество потоков можно определить с помощью perl / grep / и т. д.

2
ответ дан 27 November 2019 в 22:28
поделиться

Это частичный ответ на ваш вопрос:

set JAVA_OPTS=%JAVA_OPTS% -Xloggc:logs\gc.log -XX:+PrintGCDetails -XX:MaxPermSize=128m 
0
ответ дан 27 November 2019 в 22:28
поделиться
Другие вопросы по тегам:

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