如何取消暂停命令并将所有标准输出发送到日志文件

如何取消暂停命令并将所有标准输出发送到日志文件

因此,通常的方法是使用 CTRL+Z 暂停命令,然后您可以执行“bg 1”或其他操作来恢复命令,这样就可以了。

如果我启动了一个命令,该命令会将一堆输出发送到 stdout,但在“取消暂停”该命令后,我不再想看到这些内容,该怎么办?我可以执行类似于“bg 1 > file.log”的操作吗?

答案1

这是基于这个答案其中有有关将输出发送到的说明/dev/null

/tmp/file.log例如,要将正在运行的程序的输出发送到,请执行以下操作:

从第二个终端,使用ps来获取程序的进程 ID。

键入touch /tmp/file.log以创建一个空文件,用于存放您的输出。

gdb -p [PID]使用来自 的进程 ID输入ps

(gdb)提示符下输入以下命令:

p dup2(open("/tmp/file.log",1),1)
p dup2(open("/tmp/file.log",1),2)
detach
quit

响应dup2命令时,您应该会看到“ $1 = 1”和“ $2 = 2”。您应该会看到另一个终端上的输出停止,并且您应该能够cattail -f日志文件(或ls -l重复使用并看到大小增加)。

Ctrl现在,您可以使用-暂停您的进程,并使用(或任何作业编号)Z在后台恢复它。bg 1

相关内容