mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-21 22:53:56 +08:00
feat:后端服务器新增启动脚本,自动建立log日志
This commit is contained in:
@@ -75,6 +75,7 @@ docs/_build/
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
*.pid
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
@@ -86,10 +86,10 @@ src/main/java/xiaozhi/AdminApplication.java
|
||||
mvn clean install
|
||||
```
|
||||
|
||||
把jar包放在服务器上,执行
|
||||
把jar包与start.sh放在服务器上,执行
|
||||
|
||||
```
|
||||
nohup java -jar xiaozhi-esp32-api.jar --spring.profiles.active=dev > xiaozhi-server.log 2>&1 & echo $! > xiaozhi-server.pid
|
||||
sh start.sh
|
||||
```
|
||||
|
||||
# 接口文档
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 应用名称和JAR包路径
|
||||
APP_NAME="xiaozhi-esp32-api"
|
||||
JAR_FILE="xiaozhi-esp32-api.jar"
|
||||
PID_FILE="xiaozhi-server.pid"
|
||||
PROFILE="dev"
|
||||
|
||||
# 创建日志目录
|
||||
LOG_DIR="logs"
|
||||
mkdir -p $LOG_DIR
|
||||
|
||||
# 获取当前日期和时间作为日志文件名(精确到秒)
|
||||
CURRENT_DATETIME=$(date +"%Y-%m-%d_%H-%M-%S")
|
||||
LOG_FILE="$LOG_DIR/${APP_NAME}_${CURRENT_DATETIME}.log"
|
||||
|
||||
# 检查JAR文件是否存在,如果不存在则尝试在target目录中查找
|
||||
if [ ! -f "$JAR_FILE" ]; then
|
||||
|
||||
# 检查target目录是否存在
|
||||
if [ -d "target" ]; then
|
||||
# 在target目录中查找JAR文件
|
||||
TARGET_JAR=$(find target -name "$JAR_FILE" -type f | head -n 1)
|
||||
|
||||
if [ -n "$TARGET_JAR" ]; then
|
||||
JAR_FILE="$TARGET_JAR"
|
||||
else
|
||||
# 如果找不到指定名称的JAR,尝试查找任何JAR文件
|
||||
TARGET_JAR=$(find target -name "*.jar" -not -name "*sources.jar" -not -name "*javadoc.jar" -not -name "*tests.jar" -type f | head -n 1)
|
||||
|
||||
if [ -n "$TARGET_JAR" ]; then
|
||||
JAR_FILE="$TARGET_JAR"
|
||||
else
|
||||
echo "错误: 无法找到JAR文件,请确保已编译项目"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "错误: 未找到target目录,请确保已编译项目"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查是否已经有实例在运行
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
OLD_PID=$(cat $PID_FILE)
|
||||
if ps -p $OLD_PID > /dev/null; then
|
||||
echo "发现已运行的实例 (PID: $OLD_PID),正在停止..."
|
||||
kill $OLD_PID
|
||||
sleep 5
|
||||
|
||||
# 检查进程是否仍在运行,如果是则强制终止
|
||||
if ps -p $OLD_PID > /dev/null; then
|
||||
echo "进程未能正常终止,正在强制终止..."
|
||||
kill -9 $OLD_PID
|
||||
sleep 2
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# 启动应用
|
||||
nohup java -jar $JAR_FILE --spring.profiles.active=$PROFILE > $LOG_FILE 2>&1 & echo $! > $PID_FILE
|
||||
echo "$APP_NAME 已启动,PID: $(cat $PID_FILE)"
|
||||
|
||||
# 创建一个符号链接指向最新的日志文件,方便查看
|
||||
LATEST_LOG_LINK="$LOG_DIR/${APP_NAME}_latest.log"
|
||||
if [ -L "$LATEST_LOG_LINK" ]; then
|
||||
rm "$LATEST_LOG_LINK"
|
||||
fi
|
||||
ln -s "$(basename $LOG_FILE)" "$LATEST_LOG_LINK"
|
||||
echo "最新日志文件链接: $LATEST_LOG_LINK"
|
||||
Reference in New Issue
Block a user