123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/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
|