整理了启动脚本

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
# ./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