#!/bin/bash
Njob=15 #任务总数
Nproc=5 #最大并发进程数
Que=""
function PushQue { #将pid值追加到队列中
Que="$Que $1"
Nrun=$(($Nrun + 1))
}
function GenQue { #更新队列信息,先清空队列信息,然后检索生成新的队列信息
OldQue=$Que
Que=""
Nrun=0
for PID in $OldQue
do
if [ -d /proc/$PID ]; then
PushQue $PID
fi
done
}
function ChkQue { #检查队列信息,如果有已经结束的进程的PID,那么更新队列信息
OldQue=$Que
for PID in $OldQue
do
if [ ! -d /proc/$PID ]; then
GenQue
break
fi
done
}
for((i=1;i<=$Njob;i++))
do
echo "progress $i is sleeping for 3 seconds..."
sleep 3 &
PID=$!
PushQue $PID
while [ $Nrun -ge $Nproc ] # 如果Nrun大于Nproc,就一直ChkQue
do
ChkQue
sleep 0.1
done
done
wait
echo -e "time-consuming: $SECONDS seconds" #显示脚本执行耗时
没有合适的资源?快使用搜索试试~ 我知道了~
shell 并行运行脚本
需积分: 50 28 下载量 166 浏览量
2018-07-27
15:24:54
上传
评论
收藏 2KB GZ 举报
温馨提示
共5个文件
sh:5个
通过循环、队列、fifo文件,实现shell并行任务运行的脚本,测试环境为CentOS7
资源推荐
资源详情
资源评论
收起资源包目录
concurrencesh.tar.gz (5个子文件)
concurrencesh
fifo.sh 715B
circulation.sh 331B
circu_concurr_ctl.sh 641B
circu_concurr.sh 614B
queue.sh 874B
共 5 条
- 1
资源评论
Laiix
- 粉丝: 30
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功