使用方式
- 新建 a.sh文件
- 复制脚本代码进去 注意文件权限
chmod +x a.sh
- ./a.sh start 启动 ./a.sh stop 停止 ./a.sh restart 重启
启动程序里面:
nohup java -Dfile.encoding=utf-8 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/devdata/gcapp/heapError -jar $JAR_FILE --spring.profiles.active=prod --spring.cloud.nacos.server-addr=192.168.10.185:8848 --spring.cloud.nacos.config.server-addr=192.168.10.185:8848 > $LOG_FILE 2>&1 &
这里配置的比较多参数一般简单的:
nohup java -jar $JAR_FILE > $LOG_FILE 2>&1 &
#!/bin/bash
# 应用程序的JAR文件名
JAR_FILE="operate-server.jar"
LOG_FILE="operate.log"
# 获取应用程序的PID
get_pid() {
echo $(ps -ef | grep $JAR_FILE | grep -v grep | awk '{print $2}')
}
# 启动应用程序
start() {
if [ -z "$(get_pid)" ]; then
echo "Starting $JAR_FILE..."
nohup java -Dfile.encoding=utf-8 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/devdata/gcapp/heapError -jar $JAR_FILE --spring.profiles.active=prod --spring.cloud.nacos.server-addr=192.168.10.185:8848 --spring.cloud.nacos.config.server-addr=192.168.10.185:8848 > $LOG_FILE 2>&1 &
echo "$JAR_FILE started with PID $(get_pid) and logging to $LOG_FILE"
else
echo "$JAR_FILE is already running with PID $(get_pid)"
fi
}
# 停止应用程序
stop() {
PID=$(get_pid)
if [ -n "$PID" ]; then
echo "Stopping $JAR_FILE with PID $PID..."
kill $PID
sleep 2
if [ -z "$(get_pid)" ]; then
echo "$JAR_FILE stopped."
else
echo "Failed to stop $JAR_FILE. Forcing stop..."
kill -9 $PID
echo "$JAR_FILE forcefully stopped."
fi
else
echo "$JAR_FILE is not running."
fi
}
# 根据传入的参数执行相应的操作
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0