Я использую серверную версию Ubuntu, и я хотел сделать дамп потока Tomcat.
Итак, я сначала попытался выяснить, какой PID tomcat использует:
$ jps -l
5809 sun.tools.jps.Jps
Но его там нет?
Поэтому я использовал top
и узнал PID 5730.
Затем я вызвал jstack, чтобы получить дамп потока:
$ sudo jstack -l 5730
5730: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
Что происходит? :-(
Я уже пытался экспортировать CATALINA_TMPDIR, как описано в Jstack и Jstat перестали работать с обновлением до JDK6u23, но это ничего не изменило:
$ export CATALINA_TMPDIR=/tmp
$ sudo /etc/init.d/tomcat6 restart
* Stopping Tomcat servlet engine tomcat6
...done.
* Starting Tomcat servlet engine tomcat6
...done.
$ sudo jstack -l 5934 // new PID after restart
5934: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
Обновление:
Я тоже пробовал sudo -u tomcat6 jstack -l -F 5730 > threaddumpexceptions2.txt
, но это дает мне только массу исключений на консоли.
sudo apt-get install tomcat6
(без ручной установки через wget).echo $JAVA_HOME
мне ничего не возвращает! (Пустая строка)java -version
дает мне следующее:java version "1.6.0_20" OpenJDK Runtime Environment (IcedTea6 1.9.9) (6b20-1.9.9-0ubuntu1~10.04.2) OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)
Имеет ли это для вас смысл? - person Timo Ernst   schedule 20.09.2011jps -l
по-прежнему возвращает только2316 sun.tools.jps.Jps
.echo $JAVA_HOME
дает/usr/lib/jvm/java-6-openjdk
- person Timo Ernst   schedule 21.09.2011sudo kill -QUIT 5244
, но ничего не вернул (просто пустая новая командная строка), и ничего не произошло (5244 - это PID tomcat, а -QUIT должен отправить SIGQUIT этому процессу). - person Timo Ernst   schedule 22.09.2011