#!/bin/bash
# 设置命令文件、日志文件和每次执行的行数以及运行的程序名
COMMAND_FILE="/home/appadmin/app/rcs/need_second_dispose_data.txt"
LOG_FILE="/home/appadmin/app/rcs/logfile.log"
LINES_PER_BATCH=10
PROCESS_RUU=main_yw.py
# 获取总行数
total_lines=$(wc -l < "$commands_file")
# 初始化当前行数
current_line=1
# 函数:检查 rcs_main_yw.py 的进程数
check_process_count() {
ps aux | grep "$PROCESS_RUU" | wc -l
}
# 打印总行数
echo "$(date):$COMMAND_FILE 文件总的行数为--------$total_lines"
while [ "$current_line" -le "$total_lines" ]; do
# 执行每一批次的命令
for ((i=0; i<batch_size; i++)); do
if [ "$current_line" -le "$total_lines" ]; then
command=$(sed -n "${current_line}p" "$commands_file")
echo "$(date):执行命令---: $command"
eval "$command"
current_line=$((current_line + 1))
fi
done
# 检查 rcs_main_yw.py 进程个数
while true; do
process_count=$(check_process_count)
echo "$(date): 当前的$PROCESS_RUU 进程数量--: $process_count"
if [ "$process_count" -eq 0 ]; then
echo "执行下一批$LINES_PER_BATCH 行的的命令,从$current_line"
break
fi
echo "等待下一个$interval 秒查询的$PROCESS_RUU 数量"
sleep "$interval"
done
done
echo "$COMMAND_FILE ----------------文件执行完成."