LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1022|回复: 7

借DEBIAN的力量,问一个问题:一个父进程如何同时调六个子进程?

[复制链接]
发表于 2006-1-8 14:29:22 | 显示全部楼层 |阅读模式
我想在SHELL下实现如下的功能:

有一个父进程,调度起来后,需要检查6个配置文件,等待检查完后,根据检查结果 执行操作。原来我是用FOR 语句 逐个文件检查,等待完成后,才作处理,时间是一个文件的六倍。现在有没有办法调度六个子进程同时检查六个文件。等最后一个完成后。父进程作操作。http://www.linuxsir.cn/bbs/showthread.php?t=238602
发表于 2006-1-8 16:09:17 | 显示全部楼层
这样:
  1. date; echo "hello"
复制代码
结果是
  1. 日  1月  8 16:06:54 CST 2006
  2. hello
复制代码
而,这样:
  1. date & echo hello &
复制代码
结果是:
  1. 日  1月  8 16:07:15 CST 2006
  2. hello
复制代码
说明用"&"选项让它在后台执行之后命令是并行执行的,而echo命令比date命令要快,所以就先执行了。
回复 支持 反对

使用道具 举报

发表于 2006-1-8 18:02:13 | 显示全部楼层
有没有搞错。。。怎么说明的,输出结果是一样的阿
回复 支持 反对

使用道具 举报

发表于 2006-1-8 18:21:52 | 显示全部楼层
:!! 不好意思,复制的时候弄错了!
呵呵,应该是这样,原始输出,包括作业号之类的:
  1. ~$ date & echo hello &
  2. [1] 3374
  3. [2] 3375
  4. hello
  5. ~$ 日  1月  8 18:20:13 CST 2006
  6. [1]-  Done                    date
  7. [2]+  Done                    echo hello
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-9 08:30:04 | 显示全部楼层
没看明白!!!
这样吧。

我想同时检查3个网络地址是否UP/DOWN,准备用PING命令。

请给出代码。


PS AUX 能看到 3个 PING 吗?
回复 支持 反对

使用道具 举报

发表于 2006-1-9 10:32:13 | 显示全部楼层
Post by leeshasr
没看明白!!!
这样吧。

我想同时检查3个网络地址是否UP/DOWN,准备用PING命令。

请给出代码。


PS AUX 能看到 3个 PING 吗?

怎么会没有看明白呢?
就是说,直接这样:
foo; bar
执行的话,就是按顺序,先执行foo, 在执行bar,但是如果让他们在后台执行的话:
foo & bar &
那么两个就是同时执行的,我选echo和date来执行就是因为date比echo执行要慢,虽然把date写在前面,但是还是echo先输出结果,以此来说明其实两个程序是并行执行的:
date & echo "foo bar"
的结果一般是:
  1. date & echo "foo bar"
  2. [1] 2863
  3. foo bar
  4. 一  1月  9 10:31:09 CST 2006
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-1-9 10:34:18 | 显示全部楼层
看:
  1. ping 10.71.45.98 & ping 10.13.21.88 & ping www.baidu.com
  2. [2] 2865
  3. [3] 2866
  4. PING 10.71.45.98 (10.71.45.98) 56(84) bytes of data.
  5. 64 bytes from 10.71.45.98: icmp_seq=1 ttl=124 time=0.818 ms
  6. PING 10.13.21.88 (10.13.21.88) 56(84) bytes of data.
  7. 64 bytes from 10.13.21.88: icmp_seq=1 ttl=57 time=2.44 ms
  8. PING www.a.shifen.com (202.108.22.5) 56(84) bytes of data.
  9. 64 bytes from 10.71.45.98: icmp_seq=2 ttl=124 time=1.14 ms
  10. 64 bytes from 10.13.21.88: icmp_seq=2 ttl=57 time=2.00 ms
  11. ......省略
复制代码
在另外一个终端:
  1. ~$ ps aux | grep ping
  2. kid       2865  0.0  0.2   1672   524 pts/0    S    10:32   0:00 ping 10.71.45.98
  3. kid       2866  0.0  0.2   1672   532 pts/0    S    10:32   0:00 ping 10.13.21.88
  4. kid       2867  0.0  0.2   1748   676 pts/0    S+   10:32   0:00 ping www.baidu.com
  5. kid       2876  0.0  0.3   3328   768 pts/1    R+   10:32   0:00 grep ping
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-9 20:07:09 | 显示全部楼层
谢谢!!!
我学习学习!

还是debian的高手多。有问题再请教!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表