进程启动后重定向

进程启动后重定向

假设我已经从终端调用了 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

相关内容