假设我已经从终端调用了 Firefox firefox
,然后我回到了终端。我现在可以使用 ctrl-z 暂停该进程,并使用 在后台恢复它bg
。但是它将继续在终端中产生输出。此时有办法重定向吗?也就是说,要得到firefox &>/dev/null &
一开始就写的结果?
答案1
您可以使用 来执行此操作gdb
。您需要找到 Firefox 的进程 ID (PID),如果您使用Ctrl+暂停了进程,则该进程 ID 可能包含在暂停消息中Z。
如果该消息在您的终端中不包含 PID,您可以使用以下命令找到它:
ps aux | grep firefox
这样,您就可以使用此命令来启动gdb
:
sudo gdb -p PID
在程序中,这些命令会将 stdout 和 stderr 重定向到/dev/null
.
p dup2(open("/dev/null",0),1)
p dup2(open("/dev/null",0),2)
detach
quit