整理了启动脚本

This commit is contained in:
Tian jianyong 2025-10-17 11:31:20 +08:00
parent 1ecb424462
commit 4f2a53925e
2 changed files with 175 additions and 133 deletions

102
mock.sh Executable file
View File

@ -0,0 +1,102 @@
#!/bin/bash
# Mock服务管理脚本
# 用法: ./mock.sh {start|stop|restart|status}
# 项目路径
TOOLS_DIR="./tools"
LOGS_DIR="./logs"
# 确保日志目录存在
mkdir -p "$LOGS_DIR"
# 服务列表
SERVICES=(
"mock_airport.py"
"mock_traffic_light.py"
"mock_unmanned_vehicle.py"
)
# 启动服务
start() {
echo "启动mock服务..."
cd "$TOOLS_DIR" || exit 1
for service in "${SERVICES[@]}"; do
if pgrep -f "$service" > /dev/null; then
echo " $service 已在运行"
else
case "$service" in
"mock_airport.py")
nohup python3 "$service" > "../$LOGS_DIR/airport.log" 2>&1 &
;;
"mock_traffic_light.py")
nohup python3 "$service" > "../$LOGS_DIR/traffic_light.log" 2>&1 &
;;
"mock_unmanned_vehicle.py")
nohup python3 "$service" > "../$LOGS_DIR/unmanned_vehicle.log" 2>&1 &
;;
esac
echo " $service 已启动"
fi
done
cd - > /dev/null
echo "所有mock服务启动完成"
}
# 停止服务
stop() {
echo "停止mock服务..."
for service in "${SERVICES[@]}"; do
if pkill -f "$service"; then
echo " $service 已停止"
else
echo " $service 未运行"
fi
done
echo "所有mock服务停止完成"
}
# 重启服务
restart() {
stop
sleep 2
start
}
# 检查服务状态
status() {
echo "检查mock服务状态..."
for service in "${SERVICES[@]}"; do
if pgrep -f "$service" > /dev/null; then
echo " $service: 运行中"
else
echo " $service: 已停止"
fi
done
}
# 根据参数执行相应操作
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
*)
echo "用法: $0 {start|stop|restart|status}"
exit 1
;;
esac

206
qaup.sh
View File

@ -1,174 +1,114 @@
#!/bin/sh #!/bin/sh
# ./qaup.sh start 启动 stop 停止 restart 重启 status 状态
AppName=qaup-admin.jar # 应用名称
APP_NAME=qaup-admin.jar
# JVM参数 # JVM参数
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" JVM_OPTS="-Dname=$APP_NAME -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m"
# 应用目录和日志路径 # 获取当前目录
APP_HOME=`pwd` APP_HOME=`pwd`
LOG_PATH=$APP_HOME/logs/$AppName.log
# 环境变量配置文件路径 # 环境变量配置文件路径
ENV_FILE=$APP_HOME/.env ENV_FILE=$APP_HOME/.env
# Spring Profile配置生产环境使用prod开发环境使用dev # 检查参数
# 可通过环境变量 SPRING_PROFILES_ACTIVE 覆盖,默认为 prod,druid if [ "$1" = "" ]; then
SPRING_PROFILES=${SPRING_PROFILES_ACTIVE:-prod,druid} echo "用法: $0 {start|stop|restart|status}"
if [ "$1" = "" ];
then
echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
exit 1 exit 1
fi fi
if [ "$AppName" = "" ]; # 加载环境变量
then load_env() {
echo -e "\033[0;31m 未输入应用名 \033[0m" if [ -f "$ENV_FILE" ]; then
exit 1 echo "加载环境变量配置: $ENV_FILE"
fi # 使用更兼容的方式加载环境变量
grep -v '^#' "$ENV_FILE" | grep -v '^$' | while IFS= read -r line; do
function start() export "$line"
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
if [ x"$PID" != x"" ]; then
echo "$AppName is running..."
else
# ========== 加载环境变量配置 ==========
if [ -f "$ENV_FILE" ]; then
echo "Loading environment variables from $ENV_FILE"
# 导出环境变量,忽略注释行和空行
export $(grep -v '^#' $ENV_FILE | grep -v '^
echo "Starting $AppName with profile: $SPRING_PROFILES"
# 启动应用指定Spring Profile
nohup java $JVM_OPTS -jar $AppName --spring.profiles.active=$SPRING_PROFILES > /dev/null 2>&1 &
echo "Start $AppName success..."
fi
}
function stop()
{
echo "Stop $AppName"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "$AppName (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done done
echo "$AppName exited." echo "环境变量加载完成"
else else
echo "$AppName already stopped." echo "警告: 未找到环境配置文件 $ENV_FILE,使用默认配置"
fi fi
} }
function restart() # 启动应用
{ start() {
stop # 检查进程是否已运行
if pgrep -f "$APP_NAME" > /dev/null; then
echo "$APP_NAME 已在运行"
return 0
fi
# 加载环境变量
load_env
echo "正在启动 $APP_NAME..."
# 启动应用
nohup java $JVM_OPTS -jar "$APP_NAME" > /dev/null 2>&1 &
# 等待一会儿检查是否启动成功
sleep 2 sleep 2
start if pgrep -f "$APP_NAME" > /dev/null; then
} echo "$APP_NAME 启动成功"
function status()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
if [ $PID != 0 ];then
echo "$AppName is running..."
else else
echo "$AppName is not running..." echo "$APP_NAME 启动失败,请检查日志"
fi fi
} }
case $1 in # 停止应用
start) stop() {
start;; echo "正在停止 $APP_NAME..."
stop)
stop;; # 查找进程ID
restart) PID=$(pgrep -f "$APP_NAME")
restart;;
status) if [ -n "$PID" ]; then
status;; kill "$PID"
*) sleep 3
echo -e "\033[0;31m 未知操作 \033[0m \033[0;34m {start|stop|restart|status} \033[0m" # 如果进程仍未停止,强制杀死
esac if pgrep -f "$APP_NAME" > /dev/null; then
| xargs) kill -9 "$PID"
echo "Environment variables loaded successfully"
else
echo "Warning: $ENV_FILE not found, using default configuration"
fi fi
# ======================================== echo "$APP_NAME 已停止"
echo "Starting $AppName with profile: $SPRING_PROFILES"
# 启动应用指定Spring Profile
nohup java $JVM_OPTS -jar $AppName --spring.profiles.active=$SPRING_PROFILES > /dev/null 2>&1 &
echo "Start $AppName success..."
fi
}
function stop()
{
echo "Stop $AppName"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "$AppName (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done
echo "$AppName exited."
else else
echo "$AppName already stopped." echo "$APP_NAME 未运行"
fi fi
} }
function restart() # 重启应用
{ restart() {
stop stop
sleep 2 sleep 2
start start
} }
function status() # 检查状态
{ status() {
PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l` if pgrep -f "$APP_NAME" > /dev/null; then
if [ $PID != 0 ];then echo "$APP_NAME 正在运行"
echo "$AppName is running..."
else else
echo "$AppName is not running..." echo "$APP_NAME 未运行"
fi fi
} }
case $1 in # 根据参数执行相应操作
case "$1" in
start) start)
start;; start
;;
stop) stop)
stop;; stop
;;
restart) restart)
restart;; restart
;;
status) status)
status;; status
;;
*) *)
echo -e "\033[0;31m 未知操作 \033[0m \033[0;34m {start|stop|restart|status} \033[0m" echo "用法: $0 {start|stop|restart|status}"
esac exit 1
;;
esac