如何获取命令的进程ID

如何获取命令的进程ID

我们正在批处理模式下运行一些命令。一旦现有命令完成,我们需要执行更多任务,因此我们需要等待该命令完成。

例如:

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 bsubps -eo pid,comm | grep bsub

答案3

我们已经尝试了上层命令 pid=$!等待 ${pid} 但我们收到错误

“等待太多争论”

请调查它并在可能的情况下给出解决方案。

谢谢伊莎

答案4

我们已经尝试了上面的命令,这也是 pgrep bsub 然后等待 pgrep bsub 仍然出现错误

“等待太多争论”

请调查它并在可能的情况下给出解决方案。

谢谢伊莎

相关内容