Bash:将作业放在后台,然后跟踪日志

Bash:将作业放在后台,然后跟踪日志

如何使转义工作以便实际上&在后台运行第一个命令?

# foo param1 param2 >> run.out &; tail -f run.out

答案1

只需删除分号:

# foo param1 param2 >> run.out & tail -f run.out

答案2

您需要将后台命令放在()中。

(ls -R / >>/tmp/list & ); tail -f /tmp/list

遗憾的是,这确实使它退居幕后。您将无法使用 %1 来获取其 PID。

答案3

您可以使用 nohup:

nohup cmd & 

tail -f nohup.out

答案4

我也刚刚遇到了这个问题,并且是这样解决的:

`foo param1 param2 >> run.out &` ; tail -f run.out

我不知道语义是否不同。

对于这种特定情况,以下内容也很有用:

foo param1 param2 | tee -a run.out

相关内容