Files
sftp-manager/deploy.sh
liu 14289beb66 Initial commit
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 10:10:11 +08:00

71 lines
1.5 KiB
Bash

#!/bin/bash
# SFTP Manager 部署脚本 (Linux/Mac)
# 用法: ./deploy.sh {start|stop|restart}
APP_NAME="sftp-manager"
JAR_FILE="${APP_NAME}-1.0.0.jar"
PID_FILE="${APP_NAME}.pid"
LOG_FILE="${APP_NAME}.log"
# 停止服务
stop() {
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
if kill -0 "$PID" 2>/dev/null; then
kill "$PID"
echo "正在停止服务 (PID: $PID)..."
for _ in $(seq 1 10); do
sleep 1
kill -0 "$PID" 2>/dev/null || break
done
kill -9 "$PID" 2>/dev/null
fi
rm -f "$PID_FILE"
echo "服务已停止"
else
echo "未找到 PID 文件,服务可能未运行"
fi
}
# 启动服务
start() {
if [ ! -f "$JAR_FILE" ]; then
echo "错误: 未找到 $JAR_FILE,请先执行 mvn clean package"
exit 1
fi
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
if kill -0 "$PID" 2>/dev/null; then
echo "服务已在运行 (PID: $PID)"
exit 0
fi
fi
nohup java -jar "$JAR_FILE" --spring.profiles.active=prod > "$LOG_FILE" 2>&1 &
echo $! > "$PID_FILE"
echo "服务已启动 (PID: $(cat $PID_FILE))"
}
# 重启服务
restart() {
stop
sleep 2
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "用法: $0 {start|stop|restart}"
exit 1
esac
exit 0