Java Jar包启动与停止脚本
适合最简单的单 Jar 部署场景:一个配置文件、一个日志文件、后台常驻运行。
启动脚本
#!/bin/bash
JAR_NAME="app.jar"
CONFIG_FILE="application.properties"
LOG_FILE="app.log"
JAVA_OPTS="-Xms512m -Xmx1024m"
if [ ! -f "$JAR_NAME" ]; then
echo "Error: $JAR_NAME not found!"
exit 1
fi
if [ ! -f "$CONFIG_FILE" ]; then
nohup java $JAVA_OPTS -jar "$JAR_NAME" > "$LOG_FILE" 2>&1 &
else
nohup java $JAVA_OPTS -jar "$JAR_NAME" --spring.config.location="$CONFIG_FILE" > "$LOG_FILE" 2>&1 &
fi
PID=$!
echo "$JAR_NAME started successfully."
echo "Process ID: $PID"
echo "Log file: $(pwd)/$LOG_FILE"停止脚本
#!/bin/bash
JAR_NAME="app.jar"
PID=$(ps -ef | grep java | grep "$JAR_NAME" | awk '{print $2}')
if [ -z "$PID" ]; then
echo "No running process found for $JAR_NAME."
exit 0
fi
echo "Stopping $JAR_NAME (PID: $PID)..."
kill -15 $PID
sleep 3
if ps -p $PID > /dev/null; then
echo "Process $JAR_NAME (PID: $PID) is still running. Force killing..."
kill -9 $PID
fi
echo "$JAR_NAME has been stopped."边界
这套脚本适合单实例、人工部署,不适合 systemd、Supervisor、Kubernetes 这类更正式的运行方式。