Shell多进程并发

业务背景:

  • 让a.sh和b.sh同时执行,而不是顺序执行

解决方案:

  • s.sh负责调度a.sh和b.sh

代码如下:

s.sh

#!/bin/bash
source /etc/profile;

date='2015-05-06'

echo 'start s.sh'

sh a.sh $date > a.log 2>&1 &
sh b.sh $date > b.log 2>&1 &

echo 'end s.sh'

a.sh

#!/bin/bash
source /etc/profile;

date=$1

echo 'start a.sh'
echo 'today is '$date
sleep 3s
echo 'end a.sh'

b.sh

#!/bin/bash
source /etc/profile;

date=$1

echo 'start b.sh'
echo 'today is '$date
sleep 3s
echo 'end b.sh'

时间: 2024-08-15 10:07:16

Shell多进程并发的相关文章

Linux Shell多进程并发以及并发数控制

1. 基础知识准备 1.1. linux后台进程 Unix是一个多任务系统,允许多用户同时运行多个程序.shell的元字符&提供了在后台运行不需要键盘输入的程序的方法.输入命令后,其后紧跟&字符,该命令就会被送往到linux后台执行,而终端又可以继续输入下一个命令了. 比如: sh a.sh & sh b.sh & sh c.sh & 这三个命令就会被同时送往linux后台执行,在这个程度上,认为这三个命令并发执行了. 1.2. linux文件描述符 文件描述符(缩

[Linux]shell多进程并发—详细版

业务背景 schedule.sh脚本负责调度用户轨迹工程脚本的执行,截取部分代码如下: #!/bin/bash source /etc/profile; export userTrackPathCollectHome=/home/pms/bigDataEngine/analysis/script/usertrack/master/pathCollect ############################## # # 流程A # ##############################

shell多进程并发数控制

在批量执行任务是,单进程执行速度太慢,使用&不加数量控制,又担心资源占用过多,导致宕机等问题,因此我们需要控制并发进程的数量,保证效率的同时,保证资源占用不会太高. 其中一个解决思路是利用简单的生产者-消费者模型. 以下为范例脚本: #!/bin/bash fifo_file=a.pipe mkfifo $fifo_file #创建任务队列 exec 5<>$fifo_file rm $fifo_file process_num=10 #并发任务的数量 function task()

shell 多进程

shell 多进程来模拟多线程 (1){ } 建立代码块 (2)使用 & 将进程放入后台 [[email protected] ~]$ cat threads.sh #!/bin/bash for ((i=0;i<5;i++)) do { sleep 3 echo $i>>aa && echo $i }& done wait cat aa | wc -l rm aa result

Python多进程并发(multiprocessing)用法实例详解

http://www.jb51.net/article/67116.htm 本文实例讲述了Python多进程并发(multiprocessing)用法.分享给大家供大家参考.具体分析如下: 由于Python设计的限制(我说的是咱们常用的CPython).最多只能用满1个CPU核心.Python提供了非常好用的多进程包multiprocessing,你只需要定义一个函数,Python会替你完成其他所有事情.借助这个包,可以轻松完成从单进程到并发执行的转换. 1.新建单一进程 如果我们新建少量进程,

linux网络编程-----&gt;高并发---&gt;多进程并发服务器

在做网络服务的时候并发服务端程序的编写必不可少.前端客户端应用程序是否稳定一部分取决于客户端自身,而更多的取决于服务器是否相应时间够迅速,够稳定. 常见的linux并发服务器模型: 多进程并发服务器 多线程并发服务器 select多路I/O转接服务器 poll多路I/O转接服务器 epool多路I/O转接服务器. 本次主要讨论多线程并发服务器模型: 使用多进程并发服务器时要考虑以下几点: 父进程最大文件描述个数(父进程中需要close关闭accpet返回的新文件描述符) 系统内创建进程个数(与内

linux 多进程并发服务__关于子进程回收的方法

以TCPServ 服务程序来说: 1)父进程:负责系统初始化,以及监听(listen),接受连接请求(accept);其中accept 默认阻塞调用. 2)每接受一个连接请求,动态新建(fork)一个子进程,任务完成或客户端断开,服务子进程需要退 出并收回系统资源. 3)根据linux的设计子进程的收回需要父进程参与(wait调用),而此时附进程主要服务工作在监听 客户端连接请求,同时阻塞在(accept)调用,所以父进程自身是无法"分身"去做子进程回收调用. 4)现在的问题在于如何找到父进程的

PHP CLI shell 多进程入口

#!/usr/bin/env php<?php/* * PHP CLI shell 多进程入口 * * 运行 ./bat.php [--help] 查看帮助 * 运行 ./bat.php bat-test.php 执行示例 * * bat-test.php 脚本内容如下: * <?php #防误确认if(!bat::confirm()){    bat::message("用户取消");    exit;} #全局变量global $x; $x = 12345; #添加任务

linux shell 创建并发后台执行任务并等待任务执行完成

#!/bin/bash echo "i am main" for i in $(seq 1 5) do { sleep 10; echo "i am $i"; }& done wait http://www.cnblogs.com/dorothychai/archive/2012/10/19/2730374.html linux shell 创建并发后台执行任务并等待任务执行完成