开发在排查问题时,使用arthas工具挂不上项目应用进程,说是我jdk环境有问题。我能说什么,百度解决卅
先看截图:
有进程,选择挂进程的时候就报错!
其中原由就不说了,直接上解决办法:
第一种方法:临时的
第二种方法:改启动参数
Jvm 支持设置 -XX:+StartAttachListener,这样就能在启动 Jvm 的时候,自动启动 Attach Listener 线程并监听,也可以正常使用 arthas。
对于容器环境下,更加容易的做法是给容器添加环境变量 JAVA_TOOL_OPTIONS=-XX:+StartAttachListener,这样不用修改启动脚本也能达到效果。
第三种方法:改镜像
重新构建openjdk镜像,但是这个我构建等了10来分钟,都没构建完成,我就放弃了。可能是我网络原因。
最终,我选择了第二种方法,
由于我的是容器所以我在构建项目应用镜像的时候加了个环境变量就得到解决了!
启动arthas挂载进程的截图: