70
deploy.sh
Normal file
70
deploy.sh
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user