54

我如何运行一个 shell 脚本并立即将其作为背景,但可以通过拖尾 /tmp/output.txt 随时检查其输出

如果我可以稍后再将进程置于前台,那就太好了。

PS 如果您还可以向我展示如何将后台进程“发送”到可能已初始化或未初始化的 gnu 屏幕中,那将是非常酷的。

4

2 回答 2

107

启动进程时将其“后台化”

只需&在命令后添加一个 & 符号 ( )。

如果程序写入标准输出,它仍会写入您的控制台/终端。

要将进程置于前台,只需使用fg命令。

(您可以使用 . 在后台查看作业列表jobs。)

例如:

sh -c 'sleep 3 && echo I just woke up' & jobs

后台运行当前正在运行的进程

如果您已经在前台启动了该进程,但您想将其移至后台,您可以执行以下操作:

  1. 按 Ctrl+z 使当前进程进入睡眠状态并返回到您的 shell。(此过程将暂停,直到您发送另一个信号。)
  2. 运行bg命令以恢复进程,但让它在后台而不是前台运行。
于 2017-05-28T01:07:20.807 回答
17

另一种方法是在行尾使用nohup命令 with 。&

像这样的东西

nohup whatevercommandyouwant whateverparameters &

这将在后台运行它并将其输出发送到 nohup.log 文件。

于 2018-10-17T14:55:50.853 回答