From 4f2a53925ed3330f5b5c55594adae750ad31ebd3 Mon Sep 17 00:00:00 2001 From: Tian jianyong <11429339@qq.com> Date: Fri, 17 Oct 2025 11:31:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BA=86=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mock.sh | 102 ++++++++++++++++++++++++++++ qaup.sh | 206 ++++++++++++++++++++------------------------------------ 2 files changed, 175 insertions(+), 133 deletions(-) create mode 100755 mock.sh diff --git a/mock.sh b/mock.sh new file mode 100755 index 00000000..6b42a281 --- /dev/null +++ b/mock.sh @@ -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 \ No newline at end of file diff --git a/qaup.sh b/qaup.sh index b68619f9..5f641bc3 100644 --- a/qaup.sh +++ b/qaup.sh @@ -1,174 +1,114 @@ #!/bin/sh -# ./qaup.sh start 启动 stop 停止 restart 重启 status 状态 -AppName=qaup-admin.jar + +# 应用名称 +APP_NAME=qaup-admin.jar # 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` -LOG_PATH=$APP_HOME/logs/$AppName.log # 环境变量配置文件路径 ENV_FILE=$APP_HOME/.env -# Spring Profile配置(生产环境使用prod,开发环境使用dev) -# 可通过环境变量 SPRING_PROFILES_ACTIVE 覆盖,默认为 prod,druid -SPRING_PROFILES=${SPRING_PROFILES_ACTIVE:-prod,druid} - -if [ "$1" = "" ]; -then - echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m" +# 检查参数 +if [ "$1" = "" ]; then + echo "用法: $0 {start|stop|restart|status}" exit 1 fi -if [ "$AppName" = "" ]; -then - echo -e "\033[0;31m 未输入应用名 \033[0m" - exit 1 -fi - -function start() -{ - 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 +# 加载环境变量 +load_env() { + if [ -f "$ENV_FILE" ]; then + echo "加载环境变量配置: $ENV_FILE" + # 使用更兼容的方式加载环境变量 + grep -v '^#' "$ENV_FILE" | grep -v '^$' | while IFS= read -r line; do + export "$line" done - echo "$AppName exited." + echo "环境变量加载完成" else - echo "$AppName already stopped." + echo "警告: 未找到环境配置文件 $ENV_FILE,使用默认配置" fi } -function restart() -{ - stop +# 启动应用 +start() { + # 检查进程是否已运行 + 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 - start -} - -function status() -{ - PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l` - if [ $PID != 0 ];then - echo "$AppName is running..." + if pgrep -f "$APP_NAME" > /dev/null; then + echo "$APP_NAME 启动成功" else - echo "$AppName is not running..." + echo "$APP_NAME 启动失败,请检查日志" fi } -case $1 in - start) - start;; - stop) - stop;; - restart) - restart;; - status) - status;; - *) - echo -e "\033[0;31m 未知操作 \033[0m \033[0;34m {start|stop|restart|status} \033[0m" -esac - | xargs) - echo "Environment variables loaded successfully" - else - echo "Warning: $ENV_FILE not found, using default configuration" +# 停止应用 +stop() { + echo "正在停止 $APP_NAME..." + + # 查找进程ID + PID=$(pgrep -f "$APP_NAME") + + if [ -n "$PID" ]; then + kill "$PID" + sleep 3 + # 如果进程仍未停止,强制杀死 + if pgrep -f "$APP_NAME" > /dev/null; then + kill -9 "$PID" fi - # ======================================== - - 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." + echo "$APP_NAME 已停止" else - echo "$AppName already stopped." + echo "$APP_NAME 未运行" fi } -function restart() -{ +# 重启应用 +restart() { stop sleep 2 start } -function status() -{ - PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l` - if [ $PID != 0 ];then - echo "$AppName is running..." +# 检查状态 +status() { + if pgrep -f "$APP_NAME" > /dev/null; then + echo "$APP_NAME 正在运行" else - echo "$AppName is not running..." + echo "$APP_NAME 未运行" fi } -case $1 in +# 根据参数执行相应操作 +case "$1" in start) - start;; + start + ;; stop) - stop;; + stop + ;; restart) - restart;; + restart + ;; status) - status;; + status + ;; *) - echo -e "\033[0;31m 未知操作 \033[0m \033[0;34m {start|stop|restart|status} \033[0m" -esac + echo "用法: $0 {start|stop|restart|status}" + exit 1 + ;; +esac \ No newline at end of file