- 论坛徽章:
- 0
|
在我的主程序中,会调用一个子程序,这个子程序执行的时间是不确定的,但是我又要控制子程序打开的数量,不能超过定义,然后有子进程执行完了,执着执行下一个,在代码中类似:
- for file_name in file_list
- do
- nohup process file_name &
- done
复制代码
我现在的基本思路是定义3个全局的环境变量(假定允许执行的process 只有3个),inst1 ,inst2,inst3
初始的时候定义为0,如果执行的话,定义为1,执行完成时,重新定义为0
- inst1=0;export inst1
- inst2=0;export inst2
- inst3=0;export inst3
- i=0
- for file_name in file_list
- do
- while [ 1 -eq 1 ]
- do
- if [ $i -eq 3 ]
- sleep 5
- i=0
- fi
- i=`expr $i +1`
- if [ $inst(i) = 0 ];then #这时简写,insti的调用要用eval声明一下,不然无法调用.
- nohup process file_name insti &
- return #退出while循环,继续处理下一个文件
- fi
- done
- done
-
复制代码
这种方式对我来讲,肯定是能实现的,只是想是不是有更好的方法来控制,大家来帮我一起想一想吧,谢谢! |
|