![附加命令以在长时间运行的线程返回时执行](https://linux22.com/image/1284530/%E9%99%84%E5%8A%A0%E5%91%BD%E4%BB%A4%E4%BB%A5%E5%9C%A8%E9%95%BF%E6%97%B6%E9%97%B4%E8%BF%90%E8%A1%8C%E7%9A%84%E7%BA%BF%E7%A8%8B%E8%BF%94%E5%9B%9E%E6%97%B6%E6%89%A7%E8%A1%8C.png)
假设我刚刚启动了一个需要很长时间才能执行的命令,比如hg clone
整个 Pypy 开发集。执行到一半时,我决定hg up
在第一个进程返回后运行另一个进程,比如。有没有办法在进程返回时附加一个要执行的命令,而不用停止命令/进程,然后将其作为链式命令重新启动?命令/进程?
答案1
假设您正在使用bash
,并且假设您将长时间运行的任务放入当前 shell 的后台,通过运行longtask &
或启动任务然后按CTRL+ Z,那么您可以添加一个额外的命令来运行,例如:
$ sleep 45 &
[1] 27722
$ wait 27722 && echo "Done"
[1]+ Done sleep 45
Done
$
在上面的例子中,仅在 PID 27722echo "Done"
完成后才执行。wait
我还没有找到一种方法来将这个额外的命令放到后台,以便您继续在同一个 shell 中工作。但一定有办法做到这一点 - 希望这能给你一个开始。