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