Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6909360
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: LINUX

2013-11-20 08:12:35

原文地址:多个脚本同时执行 作者:tuohuang0303

1、编写多进程实验脚本 demo.sh

#!/bin/bash

>sub1.log;>sub2.log;>sub3.log

function sub1

{

for i in {1..5}

do

        echo `date +%T` >> sub1.log   #注意date 和+号之间有空格。如:date +%m/%d  date取"月/日"的命令行。

        sleep 1

done

}

function sub2

{

for i in {1..5}

do

        echo `date +%T` >> sub2.log

        sleep 1

done

}

function sub3

{

for i in {1..5}

do

        echo `date +%T` >> sub3.log

        sleep 1

done

}

sub1

sub2

sub3

 

2、执行实验脚本

[root@Svr23 Mornitor]# ./demo  

[root@Svr23 Mornitor]# cat sub1.log 

11:11:51

11:11:52

11:11:53

11:11:54

11:11:55

[root@Svr23 Mornitor]# cat sub2.log  

11:11:56

11:11:57

11:11:58

11:11:59

11:12:00

[root@Svr23 Mornitor]# cat sub3.log  

11:12:01

11:12:02

11:12:03

11:12:04

11:12:05

 

发现三个sub子函数是依次执行,总共需要15s

3、调整修改一下脚本,将sub子函数加入到后台执行。

[root@Svr23 Mornitor]#  vi demo.sh

..........

sub1&

sub2&

sub3&

 

再次执行实验脚本

[root@Svr23 Mornitor]# ./demo  

[root@Svr23 Mornitor]# cat sub1.log 

11:12:24

11:12:25

11:12:26

11:12:27

11:12:28

[root@Svr23 Mornitor]# cat sub2.log 

11:12:24

11:12:25

11:12:26

11:12:27

11:12:28

[root@Svr23 Mornitor]# cat sub3.log 

11:12:24

11:12:25

11:12:26

11:12:27

11:12:28

 

发现三个sub子函数是并行执行,总共需要5s,速度大大提高

分析:shell是fork()+exec()来处理子命令,3个进程并发执行.主shell退出后,三个进程都会被init收养.

阅读(428) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~