不需要JVM就可以attach指定java agent到指定JVM中
./agent_loader {pid} /path/to/your-agent.jar
JVM利用了Unix Domain Socket跨进程通信的机制,JVM指定了一个文件创建socket,由用户写入命令到socket,JVM从其中读取命令执行并返回响应。 其详细步骤如下所述:
- java_pid文件 2.创建attach_pid文件 3.发送QUIT信号,等待JVM创建java_pid文件
- connect socket
- write命令 protocol version + cmd + args
- read response