使shell提示等待所有进程完成

时间:2015-05-25 16:24:19

标签: bash shell process scrapy

我正在从java程序运行shell脚本。 shell脚本将启动多个scrapy爬虫。

#!/bin/bash
cd /Users/renny/Documents/WorkSpaces/Scrapy/tutorial

scrapy crawl flipkart -a key="$1" -o "$2"flipkart.xml
scrapy crawl myntra -a key="$1" -o "$2"myntra.xml
scrapy crawl jabong -a key="$1" -o "$2"jabong.xml

shell脚本不会等待scrapy搜寻器的完成。 我希望shell脚本仅在子进程完成后退出。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

我不确定如何调用该流程,但让我们称之为scrapy,然后您可以通过忙碌等待实现此目的。

while [ $(ps | grep scrapy | wc -l) -ge 1 ]; do 
    sleep 1; 
done
exit 0

或者可选地等同于

while [[ -n $(ps | grep scrapy) ]]; do 
    sleep 1; 
done
exit 0