在 Linux 上执行一些前台输入/输出操作后,如何在后台运行进程并在文件中进行输出?

在 Linux 上执行一些前台输入/输出操作后,如何在后台运行进程并在文件中进行输出?

我启动一个进程并在前台与其交互(一些输入操作),然后它工作了很长时间,所以我把它放到后台并注销。我想在文本文件中重定向错误消息,而进程在后台并且我没有连接到机器。我该如何实现呢?

更新型多巴胺:我需要在进程运行时重定向输出,因为最初我需要一些控制台输出。

答案1

您可以通过以下方式以交互方式启动该过程,然后重定向错误消息:

  my_program 2> output.txt

现在您可以等待它的输出,与其交互,然后将其放入后台,同时仍然保持标准错误的重定向。

答案2

SSH 连接,启动一个进程,然后忘掉它?这听起来像是一份工作tmux或者屏幕。您可以让进程保持运行,与 tmux 分离,并在不退出的情况下注销。

2> log.txt当您运行命令时,您仍然可以将标准错误重定向到文本文件,甚至可以tail -f重定向到另一个 tmux 窗口中的文件。

答案3

您希望从错误消息(未缓冲)进入文本文件开始,然后您可以根据需要查看它们(请参阅“tail -f”)。假设 shell 具有作业控制功能,您可以使用 Ctrl-Z 暂停当前作业,然后使用“bg”将其置于后台。

相关内容