linux – 如何更改正在运行的进程的输出重定向?

我知道如何重定向输出以及如何在bash中使用suppress them.现在,假设我不小心忘记将输出重定向部分附加到命令(例如2>& 1或> / tmp / mystdout)并且我的后台进程已经运行了一段时间,我仍然可以更改为stdout和stderr的位置正在写给?我真的不想杀死并重新启动应用程序.

为了更具体,正如Gilles在他的评论中所要求的那样,我想在这些场景中具体说明:

>错误输出文件
>忘了将stderr重定向到stdout

或两者兼而有之

例如.我运行Apache,我可以看到文件描述符:

/proc/8019/fd/0 -> /dev/null
/proc/8019/fd/1 -> /dev/null
/proc/8019/fd/2 -> /var/log/apache2/error.log

解决方法:

那是不可能的.或者至少不容易.你可能有一些运气将gdb附加到进程并在gdb中摆弄它,但这可能会导致崩溃,就像成功一样容易.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...