Java 启动脚本-简介版
脚本
#!/bin/sh
APP_NAME="jarName"
JAR_PATH="/XXXX/jarName.jar"
LOG_PATH="/XXXX/logs/app.log"
PROFILE="test"
PID_FILE="/var/run/${APP_NAME}.pid"
mkdir -p "$(dirname "$LOG_PATH")"
get_pid() {if [ -f "$PID_FILE" ]; thenPID=$(cat "$PID_FILE")if kill -0 "$PID" 2>/dev/null; thenecho "$PID"elserm -f "$PID_FILE"fifi
}
start() {PID=$(get_pid)if [ -n "$PID" ]; thenecho "[$APP_NAME] is already running (PID: $PID)"exit 1fiecho "Starting $APP_NAME..."nohup java -jar "$JAR_PATH" --spring.profiles.active="$PROFILE" \> "$LOG_PATH" 2>&1 &echo $! > "$PID_FILE"echo "[$APP_NAME] started with PID $(cat "$PID_FILE")"
}
stop() {PID=$(get_pid)if [ -z "$PID" ]; thenecho "[$APP_NAME] is not running"exit 1fiecho "Stopping $APP_NAME (PID: $PID)..."kill "$PID"sleep 3if kill -0 "$PID" 2>/dev/null; thenecho "Force killing $APP_NAME..."kill -9 "$PID"firm -f "$PID_FILE"echo "[$APP_NAME] stopped."
}
status() {PID=$(get_pid)if [ -n "$PID" ]; thenecho "[$APP_NAME] is running (PID: $PID)"elseecho "[$APP_NAME] is stopped"fi
}
case "$1" instart)start;;stop)stop;;restart)stopsleep 2start;;status)status;;*)echo "Usage: $0 {start|stop|restart|status}"exit 1;;
esac
添加执行权限
chmod +x /srv/micservice/wlwsbglpt-api/start.sh
操作示例
./start.sh start
./start.sh stop
./start.sh restart
./start.sh status
tail -f /srv/micservice/wlwsbglpt-api/logs/app.log