- 論壇徽章:
- 0
|
在我的主程序中,會(huì)調(diào)用一個(gè)子程序,這個(gè)子程序執(zhí)行的時(shí)間是不確定的,但是我又要控制子程序打開的數(shù)量,不能超過定義,然后有子進(jìn)程執(zhí)行完了,執(zhí)著執(zhí)行下一個(gè),在代碼中類似:
- for file_name in file_list
- do
- nohup process file_name &
- done
復(fù)制代碼
我現(xiàn)在的基本思路是定義3個(gè)全局的環(huán)境變量(假定允許執(zhí)行的process 只有3個(gè)),inst1 ,inst2,inst3
初始的時(shí)候定義為0,如果執(zhí)行的話,定義為1,執(zhí)行完成時(shí),重新定義為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 #這時(shí)簡寫,insti的調(diào)用要用eval聲明一下,不然無法調(diào)用.
- nohup process file_name insti &
- return #退出while循環(huán),繼續(xù)處理下一個(gè)文件
- fi
- done
- done
-
復(fù)制代碼
這種方式對我來講,肯定是能實(shí)現(xiàn)的,只是想是不是有更好的方法來控制,大家來幫我一起想一想吧,謝謝! |
|