shell同时启多个进程,并等待所有子进程结束,再做接下来的操作,最好能获取每个子进程的退出状态
2013-01-20 22:53
239 查看
( echo aaa >> /dev/null; sleep 10; exit 0)& |
2 | ( echo bbb >> /dev/null; sleep 11; exit 1)& |
3 | ( echo ccc >> /dev/null; sleep 9; exit 0)& |
4 |
5 | for ((i=0;i<3;i++)); do |
6 | j=$( echo "$i+1" | bc -l) |
7 | wait %$j |
8 | echo $? |
9 | done 前三行分别创建了三个后台子进程,由于在脚本中生成,它们的编号分别1,2,3。使用'wait %1'就等待第一个后台子进程,$?可以得到上一次条命令的退出状态 |
相关文章推荐
- shell同时启多个进程,并等待所有子进程结束
- linux c 唤醒进程 获取子进程结束状态
- linux下的wait()实现等待一个子进程和所有子进程退出
- shell命令管道未读完阻塞了子进程,与等待其结束的父进程死"锁"。
- 父进程获取子进程退出状态(2)
- 父进程获取子进程退出状态(1)
- 父进程产生一系列子进程,每个子进程打印自己的PID然后退出。要求父进程最后打印PID。
- 主进程被杀死时,如何保证子进程同时退出,而不变为孤儿进程(二)
- Linux下利用fork()创建子进程并使父进程等待子进程结束
- VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
- Shell脚本之监视主进程的运行状态,异常退出后自动重启
- shell脚本杀死进程及所有子进程
- linux c 父进程判断子进程退出状态
- shell之使用eval模拟一维数组保存进程pids,并调用wait等待所有进程执行完返回
- 1.写多进程,一个父进程,两个子进程,一个运行ls –l, 另一个暂停5s,父进程先阻塞等待第一个子进程的结束,然后用非阻塞等另一个进程退出,收集到第二个子进程结束的信息,父进程就返回。
- 让wait等待所有子进程结束
- 验证子进程退出时会给父进程发送信号的机制 、 编写父进程等待子进程的异步版本
- 多个进程同时等待网络的连接事件,当这个事件发生时,这些进程被同时唤醒,我们知道进程被唤醒,需要进行内核重新调度,这样每个进程同时去响应这一个事件,而最终只有一个进程能处理事件成功,其他的进程在处理该事件失败后重新休眠或其他。
- linux c 等待所有子进程结束
- 子进程等待父进程退出及fork使用