Скрипты запуска JBoss по умолчанию в Unix обычно выглядят примерно так:
nohup $JBOSS_HOME/bin/run.sh $JBOSS_OPTS >/dev/null 2>&1 &
Это прискорбно, потому что он посылает stderr в / dev / null. Обычно это не проблема, поскольку после инициализации log4j большая часть выходных данных приложения отправляется в boot.log или server.log. Однако для дампов потоков и других ошибок низкого уровня они теряются.
Лучше всего изменить сценарий запуска, чтобы перенаправить stdout и stderr в файл. Кроме того, одна вещь, которая упускается из виду при настройке по умолчанию, это перенаправление stdin. Для процессов-демонов рекомендуется перенаправить стандартный ввод в / dev / null. Например:
nohup $JBOSS_HOME/bin/run.sh $JBOSS_OPTS >> console-$(date +%Y%m%d).out 2>&1 < /dev/null &
Наконец, если у вас запущен процесс, вы можете использовать jstack
, который включен в JRE, чтобы получить дамп потока. Это выведет на консоль, из которой он вызван. Я предпочитаю вывод из kill -3
, но jstack
также позволяет просматривать собственные кадры стека.