#!/bin/bash
ARTHAS_FILE="arthas-boot.jar"
# 检查 arthas-boot.jar 文件是否存在
if [ ! -f "$ARTHAS_FILE" ]; then
echo "错误:未找到 arthas-boot.jar 文件,请确保该文件在当前目录中。"
exit 1
fi
# 获取当前正在运行的 Java 进程
echo "检测正在运行的 Java 进程..."
JAVA_PIDS=$(jps -l | grep -v Jps)
if [ -z "$JAVA_PIDS" ]; then
echo "没有发现运行中的 Java 进程。"
exit 1
fi
echo "找到以下 Java 进程:"
echo "$JAVA_PIDS"
# 选择要附加的进程 ID
read -p "请输入要附加的进程 ID: " TARGET_PID
# 验证输入是否为有效的 PID
if ! echo "$JAVA_PIDS" | grep -q "^$TARGET_PID"; then
echo "无效的进程 ID:$TARGET_PID"
exit 1
fi
# 启动 Arthas 并附加到指定的进程
echo "启动 Arthas 并附加到进程 ID $TARGET_PID..."
java -jar $ARTHAS_FILE --target-ip 127.0.0.1 --telnet-port 3658 --http-port 8563 $TARGET_PID &
# 等待 Arthas 启动
sleep 3
# 调用 dashboard 输出系统详情
echo "显示 dashboard 系统详情..."
echo "dashboard" | nc 127.0.0.1 3658
echo "Arthas 已启动并显示 dashboard。"