![]()
#!/bin/bash
# 配置部分
APP_NAME="ai问答" # 应用名称
JAR_FILE="jnpf-admin-3.4.7-RELEASE.jar" # Java应用的JAR文件
LOG_FILE="myapp.log" # 应用的日志文件
BACKUP_DIR="backup" # 备份目录
PID_FILE="myapp.pid" # PID文件,用于记录Java进程ID
ENV="pro" # 启动环境 dev pro
# 启动应用
start() {
if [ -f "$PID_FILE" ]; then
echo "$APP_NAME 已经运行中 (PID: $(cat $PID_FILE))"
else
echo "启动 $APP_NAME..."
nohup java -jar -Dspring.profiles.active=$ENV $JAR_FILE > $LOG_FILE 2>&1 &
echo $! > $PID_FILE
echo "$APP_NAME 已启动 (PID: $(cat $PID_FILE))"
fi
}
# 停止应用
stop() {
if [ -f "$PID_FILE" ]; then
PID=$(cat $PID_FILE)
echo "停止 $APP_NAME (PID: $PID)..."
kill $PID
rm -f $PID_FILE
echo "$APP_NAME 已停止"
else
echo "$APP_NAME 未运行"
fi
}
# 备份JAR文件
backup() {
if [ ! -d "$BACKUP_DIR" ]; then
mkdir -p $BACKUP_DIR
fi
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
cp $JAR_FILE "$BACKUP_DIR/$APP_NAME-$TIMESTAMP.jar"
echo "$APP_NAME 已备份到 $BACKUP_DIR/$APP_NAME-$TIMESTAMP.jar"
}
# 删除应用
delete() {
if [ -f "$JAR_FILE" ]; then
echo "删除应用 $APP_NAME..."
rm -f $JAR_FILE
echo "$APP_NAME 已删除"
else
echo "未找到应用文件 $JAR_FILE"
fi
}
# 查看日志
logs() {
echo "显示 $LOG_FILE 日志内容..."
tail -f $LOG_FILE
}
# 用法提示
usage() {
echo "用法: $0 {start|stop|backup|delete|logs}"
exit 1
}
# 主逻辑,根据用户输入选择操作
case "$1" in
start)
start
;;
stop)
stop
;;
backup)
backup
;;
delete)
delete
;;
logs)
logs
;;
*)
usage
;;
esac
exit 0
🎯 拓展阅读提示
本文涉及的内容已同步至公众号后台,我会在那里分享更多深度内容和实用技巧
→ 点击关注:一行梦境
文章评论