进程终止后在不同的 shell 中执行命令

进程终止后在不同的 shell 中执行命令

我正在运行一个命令,该命令在一个 shell 窗口中处理一些数据(假设它的 pid 为 200)。不幸的是,我忘了添加 & 以在后台运行它。

我需要在 pid 200 完成后运行一些分析脚本。我想我可以打开另一个 shell 窗口并执行

wait 200; ./myanalysis.sh

但它向我抱怨

"-bash: wait: pid 200 is not a child of this shell"

考虑到这一点,有没有办法我可以在该过程终止后自动执行我的分析脚本?

答案1

您无法“等待”非子进程,您必须定期手动检查。例如这个堆栈溢出答案

答案2

您可以使用^z然后执行以下操作吗?

wait 200; ./myanalysis.sh&
fg %1

这将等待 pid200完成,然后运行分析,然后将自身置于前台。

相关内容