jstack:目标进程无响应

我正在运行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

这是怎么回事?:-(

我已经尝试按照Jstack中的描述导出CATALINA_TMPDIR,并且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但这只给我带来了控制台上的大量异常。

回答:

我通过做两件事使它工作:

  1. 更改为: sudo -u tomcat6 jstack -J-d64 -m pid
  2. 用Sun的原始sun-6-jdk和sun-6-jre软件包替换了OpenJDK


我切换到64位模式,sudo以Tomcat用户的身份使用和运行命令。

第2部分可能不是必需的。对于某些用户来说,第1部分就足够了。实际上,尝试首先仅添加sudo命令。它可能已经成功了。

以上是 jstack:目标进程无响应 的全部内容, 来源链接: utcz.com/qa/429558.html

回到顶部