#!/bin/bash # 执法码2.0 - 停止脚本 # 用法: ./stop.sh JAR_NAME="zdxt-job-ep.jar" SHUTDOWN_WAIT=15 # 查找进程 PID=$(pgrep -f "${JAR_NAME}" 2>/dev/null) if [ -z "$PID" ]; then echo "[INFO] 服务未在运行" exit 0 fi echo "[INFO] 停止 ${JAR_NAME} (PID: ${PID}) ..." # 优雅停止 kill "$PID" 2>/dev/null # 等待退出 COUNT=0 while kill -0 "$PID" 2>/dev/null; do if [ $COUNT -ge $SHUTDOWN_WAIT ]; then echo "[WARN] ${SHUTDOWN_WAIT}s 未退出,强制终止..." kill -9 "$PID" 2>/dev/null sleep 1 break fi sleep 1 ((COUNT++)) done if kill -0 "$PID" 2>/dev/null; then echo "[FAIL] 停止失败 (PID: ${PID})" exit 1 else echo "[OK] 已停止" fi