[英]Running multiple Python scripts simultaneously and then sequentially
我可以从这样的bash脚本同时运行多个Python脚本;
#!/bin/bash
python pr1.py &
python pr2.py &
python aop.py &
python loader.py &
但是如果我想要一个批次同时开火并且在它们运行之后,又开始更顺序地开始。 这有用吗?:
#!/bin/bash
python pr1.py &
python pr2.py &
python ap.py &
python loader.py
python cain.py
python able.py
一旦你把它放在最后,它就作为后台进程运行。 因此所有脚本以&结尾并行运行。
要按顺序运行其他3个脚本,您可以尝试两个:
&&
仅在前面的脚本成功运行时才运行下一个脚本
python loader.py && python cain.py && python able.py
||
无论先前脚本的结果如何,都按顺序运行脚本
python loader.py || python cain.py || python able.py
在bash脚本中,您只需添加wait
命令,如下所示:
#!/bin/bash
python pr1.py &
python pr2.py &
python ap.py &
wait
python loader.py
python cain.py
python able.py
显然, wait
将等待所有工作(你解雇的后台进程)才能继续。
使用&命令,您将在后台运行脚本。 您可以在循环中添加一个检查以运行命令作业,并查看它是否继续返回作业列表。 当它停止时,你可以继续下一批python调用。
为什么不尝试一下呢?
#1.py
import time
time.sleep(3)
print("First script")
#2.py
import time
time.sleep(3)
print("Second script")
如果将进程置于后台,您将同时看到两个python脚本的输出。
#!/bin/bash
python 1.py &
python 2.py &
如果在没有&
情况下执行它,那么您将在6秒后看到第二个脚本的输出。
#!/bin/bash
python 1.py
python 2.py
PS:在并行运行时要小心处理依赖项和并发访问问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.