文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>shell脚本模拟多进程

shell脚本模拟多进程

时间:2010-09-25  来源:ubuntuer

shell脚本中开多个进程没什么困难,需要解决的问题是怎么控制同时运行的进程数目。为此,创建一个命名管道(fifo),在初始时, 向其中灌入SUB_PROCESS_NUM行数据,SUB_PROCESS_NUM为并发的进程数。每个子进程在运行钱,从fifo中读入一行数据,如果 fifo中已经北邮数据的话,进程就被阻塞在read操作上;子进程运行结束后,想fifo中灌入一行数据,这样下个进行就可以运行了。

一个例子如下,run函数代表子进程的操作:

Bash语言:
#!/bin/bash

SUB_PROCESS_NUM=10

tmpfile="$$.fifo"
mkfifo $tmpfile
exec 6<>$tmpfile
rm -f $tmpfile
for((i=1;i<=10;i++));do echo "init sub job $i.";done >&6


function run(){
    sleep 100;
}

for ((i=0;i<100;i++)); do
    read line
    echo "$line"
    (run; echo "sub job $i finished.") >&6 &
done <&6

以前工作的时候经常需要从几百台机器拷贝数据,如果一台一台的拷贝要话很长时间,所有的机器一起拷贝的话对拷贝到的目标机器压力又很大,就拿这中方法来跑了。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载