1. 程式人生 > >bash命令之linux下併發執行任務

bash命令之linux下併發執行任務

需求:
    在centos伺服器上需要並行執行多個完全獨立的任務。通過判斷任務的pid是否存在來確定任務是否結束。

由於bash是順序執行任務的,執行完一個任務才執行下一個。要實現並行執行,指令碼可以如下:

#!/bin/bash

start_t=`date +"%F %T"`
echo "start [" $start_t "]"

./mytask1 &
./mytask2 &
 
while [ 1 ]
	do
		usleep 1000000

		procid=`pgrep mytask1 mytask2`
		
		if [ "" = "$procid" ];then
			current_time=`date +"%F %T"`
			echo "finish [" $current_time "]"
			break
		fi
	done&

注意:

1、"&"起了併發作用(line 6,7)

2、判斷字串是否相等, "=" 兩部必須有空格,這是bash指令碼的要求