shell:如何使文件的尾部在后台运行

时间:2011-07-15 03:09:01

标签: shell tail

我想在shell中运行一些任务。

  1. 将文件拖放到新文件中:例如:tail -f debug|tee -a test.log
  2. 同时运行其他任务。
  3. 我的问题是:如何让命令tail -f debug|tee -a test.log在后​​台运行,以便我可以在shell脚本中运行其他任务?

3 个答案:

答案 0 :(得分:5)

你根本不需要tee,只需使用shell的内置追加算子:

tail -f debug >> test.log &

尾随&在shell中正常工作。您只需要tee将输出发送到文件以及标准输出,如果您在后台使用它可能不是您想要的。

答案 1 :(得分:4)

通常情况下,如果你想要背景,你只需在命令后使用&符号。

tail -f debug|tee -a test.log &

然后,您可以通过键入fg将其恢复到前台。这是回答你的问题还是我错过了你的问题?

答案 2 :(得分:1)

这样做的简单方法是:

screen -R -D
tail -f debug|tee -a test.log
Ctrl-A c
ps ax |grep tail
Ctrl-A [Backspace]
...
Ctrl-A [Spacebar]

screen允许您在一个终端连接上运行多个终端会话。您可以使用Ctrl-A [Backspace] | [Space]来回切换。要创建另一个单独的shell Ctrl-A c

屏幕的一个主要好处是,如果终端会话断开连接,它会使所有内容保持运行状态。只需关闭终端窗口或断开ssh,转到另一台计算机,登录并运行screen -R -D即可重新连接到仍在运行的所有内容。

如果您偶尔需要这个,只需运行tail,键入Ctrl-Z,运行命令,然后fg %1将尾部进程重新置于前台,或bg %1使其运行永久的背景。如果使用Ctrl-Z,则jobs命令会显示所有已分离的作业。