因此,通常的方法是使用 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
”。您应该会看到另一个终端上的输出停止,并且您应该能够cat
或tail -f
日志文件(或ls -l
重复使用并看到大小增加)。
Ctrl现在,您可以使用-暂停您的进程,并使用(或任何作业编号)Z在后台恢复它。bg 1