#!/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