java jstack工具内存不足或权限不足无法附加

2024-03-19

我真的很困惑: 在我的windows 2008r2中,我有一个windows服务,实际上它是一个java进程,运行为SYSTEM用户。现在,我用Jstack原始的服务。但出现错误:

 insufficient memory or insufficient privilege to attach

但是如果我使用 Jstack 的选项-F,它可以很好地工作。我查看了jdk的源码,它使用了一个类BugSpotAgent完成上面的操作。

我想知道我无法使用的根本原因Jstack原始地说,是SYSTEM用户权限问题?我也尝试过使用执行程序(一个工具)来运行我的Jstack原始地(这意味着我将使用SYSTEM要运行的用户Jstack),但还是不行。

你能帮助我吗?

感谢和问候!


jstack只能锁定由以下启动的进程同一用户 in 同一会话。当未指定会话时psexec命令锁定控制台会话并在尝试获取线程转储时引发此错误。

The solution是为了确保使用的用户和会话psexec与用于目标 java 进程的相同。

如果它是由普通用户启动的, A。使用相同的用户凭据登录而不使用 -s 或 -h 标志 b.查找启动该进程的会话 ID。 (您可以使用任务管理器并转到选项卡用户找到它)。将此会话 ID 与标志 -i 一起使用

psexec \\server-name -u username -p password -i session-id command

e.g.

psexec \\192.168.1.1 -u john -p pass123 -i 1 jstack.exe 4242

注意:如果 java 进程已由 SYSTEM 用户启动,请使用标志 -s

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java jstack工具内存不足或权限不足无法附加 的相关文章

随机推荐