1.问题

某台服务器出现假死的现象,服务进程在,但是就是不工作。于是想定位下,先看了下服务器本身的状态都是OK的,然后看下服务的状态,先执行如下的命令,发现服务是存在的,如下:
执行jps -ml输出如下:

然后执行jstack 2276,报出如下的错误:

2276: 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

2.解决

经过检查发现jstack后面的进程不是在root用户执行的,jstack需要使用与进程一致的用户才能执行。
执行ps -aux也能看出进程是由scehdule用户执行的。

于是执行sudo -u schedule `jstack 2276,能够正确执行,结果如下:

3.结论

jstack需要使用与进程一致的用户才能执行

更多推荐

Unable to open socket file: target process not responding or HotSpot VM not load