diff --git a/src/main/scripts/start.sh b/src/main/scripts/start.sh new file mode 100644 index 0000000..5669657 --- /dev/null +++ b/src/main/scripts/start.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# label-backend 启动脚本 +# - Docker 环境(检测 /.dockerenv):exec 前台运行,保持容器进程存活 +# - 裸机 / VM:nohup 后台运行,日志追加至 logs/startup.log + +set -e + +BASEDIR=$(cd "$(dirname "$0")/.." && pwd) +LIBDIR="$BASEDIR/libs" +CONFDIR="$BASEDIR/etc" +LOGDIR="$BASEDIR/logs" + +mkdir -p "$LOGDIR" + +JVM_OPTS="${JVM_OPTS:--Xms512m -Xmx1024m}" +MAIN_CLASS="com.label.LabelBackendApplication" +JAVA_ARGS="$JVM_OPTS \ + -Dspring.config.location=file:$CONFDIR/application.yml \ + -Dlogging.config=file:$CONFDIR/logback.xml \ + -cp $LIBDIR/*" + +if [ -f /.dockerenv ]; then + # Docker 容器:exec 替换当前进程,PID=1 接管信号 + exec java $JAVA_ARGS $MAIN_CLASS +else + # 裸机 / VM:nohup 后台运行 + nohup java $JAVA_ARGS $MAIN_CLASS >> "$LOGDIR/startup.log" 2>&1 & + echo "label-backend started, PID=$!" +fi