- 将各服务脚本统一到项目根目录scripts目录 - Assembly配置引用根目录scripts,避免重复 - 脚本自动从目录名推断服务名称 - 排除docker相关配置文件(application-docker.yml) - 新增env.properties环境变量配置模板 - 更新单机部署文档至v2.1
46 lines
862 B
Bash
Executable File
46 lines
862 B
Bash
Executable File
#!/bin/bash
|
|
# 服务停止脚本
|
|
# 自动从目录名推断服务名称
|
|
|
|
# 获取脚本所在目录和服务名
|
|
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
|
APP_HOME=$(dirname "$SCRIPT_DIR")
|
|
APP_NAME=$(basename "$APP_HOME")
|
|
|
|
# PID文件路径
|
|
PID_FILE="${APP_HOME}/${APP_NAME}.pid"
|
|
|
|
# 检查是否运行
|
|
if [ ! -f "$PID_FILE" ]; then
|
|
echo "${APP_NAME} is not running"
|
|
exit 0
|
|
fi
|
|
|
|
PID=$(cat $PID_FILE)
|
|
if ! ps -p $PID > /dev/null 2>&1; then
|
|
echo "${APP_NAME} is not running"
|
|
rm -f $PID_FILE
|
|
exit 0
|
|
fi
|
|
|
|
# 停止服务
|
|
echo "Stopping ${APP_NAME} (PID: $PID)..."
|
|
kill $PID
|
|
|
|
# 等待停止
|
|
for i in {1..30}; do
|
|
if ! ps -p $PID > /dev/null 2>&1; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# 强制停止
|
|
if ps -p $PID > /dev/null 2>&1; then
|
|
echo "Force killing ${APP_NAME}..."
|
|
kill -9 $PID
|
|
fi
|
|
|
|
rm -f $PID_FILE
|
|
echo "${APP_NAME} stopped"
|