gpt4 book ai didi

linux - Linux 上的 shell 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:11 25 4
gpt4 key购买 nike

这是我的shell脚本

#!/bin/bash

crawlers(){
nohup scrapy crawl a &
nohup scrapy crawl b &
wait $!
nohup scrapy crawl f &
nohup scrapy crawl g &
wait $!
nohup scrapy crawl h &
nohup scrapy crawl i &
wait $!
nohup scrapy crawl i &
nohup scrapy crawl j &
nohup scrapy crawl k &
wait $!
nohup scrapy crawl l &
nohup scrapy crawl m &
}

PATH=$PATH:/usr/local/bin
export PATH

python add_columns.py &
wait $!
crawlers &
wait $!
python final_script.py &

我要运行首先 add_columns.py 脚本

然后是爬虫脚本(爬虫中的所有脚本都是异步的)

终于要运行final_script.py

但是使用上面的shell脚本

final_script.py 在结束前正在执行

nohup scrapy crawl l &
nohup scrapy crawl m &

尽管我在爬虫上等待

crawlers &
wait $!

最后,只有在 crawlers() 方法中的所有作业完成后,我如何才能调用 final_script.py。

谢谢

最佳答案

首先,为什么要为您立即等待 的事情打扰?

其次,在 crawlers 函数中,您只需要等待一半的调用;另一半可能仍在运行。

使用不带参数的wait 来等待所有当前活跃的 child 退出。这将是一个更好的版本:

#!/bin/bash

crawlers(){
nohup scrapy crawl a &
nohup scrapy crawl b &
nohup scrapy crawl f &
nohup scrapy crawl g &
nohup scrapy crawl h &
nohup scrapy crawl i &
nohup scrapy crawl i &
nohup scrapy crawl j &
nohup scrapy crawl k &
nohup scrapy crawl l &
nohup scrapy crawl m &

wait
}

PATH=$PATH:/usr/local/bin
export PATH

python add_columns.py

crawlers

python final_script.py

关于linux - Linux 上的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13208290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com