idea 服务器Debug端口启动设置

发布于:2025-07-31 ⋅ 阅读:(23) ⋅ 点赞:(0)

 一:在阿里云服务器安全组已经设置了端口授权对象:

正确命令:

nohup java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998 -jar -Duser.timezone=GMT+08 -Xms256m -Xmx256m /opt/projects/*/*/*-starter-1.0-SNAPSHOT.jar  --spring.profiles.active=test > sys01.log 2>&1 &

执行上面不成功时,执行下面命令【主要设置标红的地方】:

nohup java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:9998 -jar -Duser.timezone=GMT+08 -Xms256m -Xmx256m /opt/projects/*/*/*-starter-1.0-SNAPSHOT.jar --server.address=0.0.0.0  --spring.profiles.active=test > sys01.log 2>&1 &

然后本地远程Debug,ok 

二:编辑启动命令:

创建文件start.sh,并进行授权 chmod +x start.sh

先发送 TERM 信号让应用优雅关闭,只有在超时后才使用 KILL 强制终止

#!/bin/bash

JAR_NAME="**-admin.jar"
LOG_FILE="/tmp/${JAR_NAME}.log"

echo "Stopping procedure: ${JAR_NAME}"

# 获取匹配的进程ID
pid=$(ps -ef | grep java | grep "${JAR_NAME}" | awk '{print $2}')

if [ -n "$pid" ]; then
    echo "Found old process with PID: $pid, attempting to stop it..."
    kill -TERM $pid  # 发送TERM信号,允许程序优雅关闭
    
    # 等待最多30秒让进程退出
    timeout=30
    while [ $timeout -gt 0 ] && kill -0 $pid 2>/dev/null; do
        echo "Waiting for process $pid to terminate... ($timeout seconds left)"
        sleep 1
        ((timeout--))
    done
    
    # 如果进程仍然存在,则强制杀死
    if kill -0 $pid 2>/dev/null; then
        echo "Force killing process $pid"
        kill -9 $pid
        sleep 2  # 给系统一点时间清理资源
    else
        echo "Process $pid stopped gracefully"
    fi
else
    echo "No running process found for ${JAR_NAME}"
fi

# 启动新服务
echo "Starting new instance of ${JAR_NAME}"
nohup java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998 \
    -jar \
    -XX:MetaspaceSize=512m \
    -XX:MaxMetaspaceSize=512m \
    -Xms1024m \
    -Xmx1024m \
    -Xmn128m \
    -Xss256k \
    -XX:SurvivorRatio=8 \
    -XX:+UseConcMarkSweepGC \
    /www/wwwroot/api/${JAR_NAME} \
    --spring.profiles.active=dev > ${LOG_FILE} 2>&1 &

echo "New instance started in background. Logs redirected to ${LOG_FILE}"


网站公告

今日签到

点亮在社区的每一天
去签到