正确使用带有未知进程的Bash等待命令编号

我正在编写一个bash脚本,该脚本本质上是一个需要大约10个小时才能完成的python脚本,后面跟着一个R脚本,用于检查python脚本的输出以获取所需的任何内容关心。以下是我有:正确使用带有未知进程的Bash等待命令编号

ProdRun="python scripts/run_prod.py" 

echo "Commencing Production Run"

$ProdRun #Runs python script

wait

DupCompare="R CMD BATCH --no-save ../dupCompareTD.R" #Runs R script

$DupCompare

现在我的问题是,往往是Python脚本可以根据其输入,有很多不同的PID的产生我们的Linux服务器上的不同过程的整个堆,我们有工人堆使用相同的服务器启动脚本。据我所知,“等待”命令必须等待所有进程完成或完成特定的PID,但是当我无法分辨将分配的PID或进程将运行多少个PID时,我该如何确切用它?

编辑:谢谢你所有的帮助,这是什么导致我的困境,任何人搜索这个谷歌。我将ProdRun python脚本分解为它自己调用的单独脚本,但仍然存在问题,我认为其中一个脚本也调用了另一个较小的脚本,其末尾有一个“&”忽略在python脚本本身内部等待的任何命令。简单地删除它并插入一行“os.system()”,允许所有代码顺序运行。

回答:

这听起来像是你正试图实现一个作业调度器,可能在不同的任务之间有一些复杂的依赖关系。我建议使用工作日程安排程序。它允许你指定,同时也像监控功能中获益跑这些工作,处理异常情况,出错,...

的例子是:开源rundeck https://github.com/rundeck/rundeck或商用一体http://www.bmcsoftware.uk/it-solutions/control-m.html

回答:

让你的Python程序等待它产生的孩子。这是解决这种情况的正确方法。然后,在完成之后,您不必等待Python(原文如此)。

(另外,请勿将您的命令放入变量中。)

以上是 正确使用带有未知进程的Bash等待命令编号 的全部内容, 来源链接: utcz.com/qa/260743.html

回到顶部