Arthas - [INFO] Can not find java process. Try to pass <pid> in command line.

    我们在K8S环境中部署了一个服务,想在线编译一段代码进行测试,把arthas导入进去之后,启动arthas竟然找不到Pod中的Java进程,郁闷。。。 

$ java -jar arthas-boot.jar
[INFO] arthas-boot version: 3.4.4
[INFO] Can not find java process. Try to pass <pid> in command line.
Please select an available pid.

    按官方的说明文档描述,假如出现了找不到pid的情况,在当前目录下应该会输出相关的log,但是在pod中当前目录下并没有日志文件产生啊???问题跟下面参考链接中的问题基本类似; 

    按照有的博主的说法,如果使用openjdk,也会报这个问题,因为其没有jps,arthas是用jps去找java进程的,使用oracle jdk即可;巧的是,我们pod的容器中使用的就是openjdk。。。

    参考Arthas排查Kubernetes中的应用频繁挂掉重启问题 #561 一般来说容器中会在PID=1上启动java或者其他的服务进程,所以在后面加上 1,再试试;

$ java -jar arthas-boot.jar 1
[INFO] arthas-boot version: 3.4.4
[INFO] Start download arthas from remote server: https://arthas.aliyun.com/download/3.4.4?mirror=center
[INFO] File size: 11.94 MB, downloaded size: 1.47 MB, downloading ...
[INFO] File size: 11.94 MB, downloaded size: 9.22 MB, downloading ...
[INFO] Download arthas success.
[INFO] arthas home: /tmp/.arthas/lib/3.4.4/arthas
[INFO] Try to attach process 1
[INFO] Attach process 1 success.
[INFO] arthas-client connect 127.0.0.1 3658
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'


wiki      https://arthas.aliyun.com/doc
tutorials https://arthas.aliyun.com/doc/arthas-tutorials.html
version   3.4.4
pid       1
time      2020-12-02 07:32:25

[arthas@1]$ 

    因为arthas没有主动找到Pod中的java进程,在手动指定之后,就可以了。。。

posted @ 2022-01-27 18:35  zhangdaopin  阅读(1323)  评论(0编辑  收藏  举报