我们正在批处理模式下运行一些命令。一旦现有命令完成,我们需要执行更多任务,因此我们需要等待该命令完成。
例如:
bsub -q gui -I calibre -drc -batch
wait
您能告诉我们如何获取 wait 命令中提到的该作业的进程 ID 或其他等待现有命令终止的替代方法吗?
答案1
尝试这个
bsub -q gui -I calibre -drc -batch & pid=$!
wait ${pid}
这里pid
有一个变量。你可以给它起任何名字。
答案2
内置的等待命令应该已经可以解决问题 - 它应该等待,直到bsub
完成,尽管bsub
会在后台运行。但如果您不想使用,您可以使用例如或wait
来获取 PID,然后您可以编写自己的“wait-until-finished”例程。pgrep bsub
ps -eo pid,comm | grep bsub
答案3
我们已经尝试了上层命令 pid=$!等待 ${pid} 但我们收到错误
“等待太多争论”
请调查它并在可能的情况下给出解决方案。
谢谢伊莎
答案4
我们已经尝试了上面的命令,这也是 pgrep bsub 然后等待 pgrep bsub 仍然出现错误
“等待太多争论”
请调查它并在可能的情况下给出解决方案。
谢谢伊莎