#!/bin/bash # 初始设置环境变量 export LD_LIBRARY_PATH="./PlatformModule:$LD_LIBRARY_PATH" # 检查目录和文件 DRIVER_CONFIG_DIR="./DriverConfig" if [ ! -d "$DRIVER_CONFIG_DIR" ]; then echo "错误:DriverConfig目录不存在" exit 1 fi if [ ! -x "./CcosProcGo" ]; then echo "错误:未找到可执行文件CcosProcGo" exit 1 fi # 统计文件数量 FILE_COUNT=$(find "$DRIVER_CONFIG_DIR" -maxdepth 1 -type f | wc -l) if [ "$FILE_COUNT" -eq 0 ]; then echo "警告:DriverConfig目录中没有文件" exit 0 fi echo "发现 $FILE_COUNT 个配置文件,开始检测进程状态..." # 计数器 STARTED_COUNT=0 ALREADY_RUNNING_COUNT=0 # 遍历所有配置文件 while IFS= read -r -d '' FILE_PATH; do FILE_NAME=$(basename "$FILE_PATH") # 检查是否已经有对应的进程在运行 # 使用 pgrep 查找进程名包含 CcosProcGo 和配置文件名的进程 if pgrep -f "CcosProcGo $FILE_NAME" > /dev/null 2>&1; then echo "✓ 进程已运行:$FILE_NAME" ((ALREADY_RUNNING_COUNT++)) else echo "✗ 进程未运行,正在启动:$FILE_NAME" ./CcosProcGo "$FILE_NAME" > /dev/null 2>&1 & ((STARTED_COUNT++)) fi done < <(find "$DRIVER_CONFIG_DIR" -maxdepth 1 -type f -print0) echo "" echo "========== 执行结果 ==========" echo "已运行的进程数:$ALREADY_RUNNING_COUNT" echo "新启动的进程数:$STARTED_COUNT" echo "总配置文件数:$FILE_COUNT" echo "==============================" exit 0