重定向正在运行进程的stderr

💡 原文英文,约300词,阅读约需2分钟。
📝

内容提要

在柏林的KDE冲刺活动中,Roman Gilg介绍了如何将正在运行的进程的stderr重定向到文件。通过使用gdb调试器,可以附加到运行中的进程并执行相关代码,具体步骤包括附加gdb到进程并运行编译代码以重定向stderr。此方法简单有效,gdb还可用于其他操作。

🎯

关键要点

  • 在柏林的KDE冲刺活动中,Roman Gilg介绍了如何将正在运行的进程的stderr重定向到文件。
  • 使用gdb调试器可以附加到运行中的进程并执行相关代码。
  • 具体步骤包括附加gdb到进程并运行编译代码以重定向stderr。
  • 使用open创建要重定向到的文件,并通过dup2覆盖stderr。
  • gdb还可以用于其他操作,例如关闭进程的文件描述符。

延伸问答

如何将正在运行的进程的stderr重定向到文件?

可以使用gdb调试器附加到运行中的进程,并运行编译代码来重定向stderr。

gdb调试器的哪些功能可以帮助重定向stderr?

gdb可以附加到运行中的进程并在目标进程空间中执行任意代码。

在重定向stderr时,使用的文件描述符是什么?

stderr的文件描述符始终是2。

重定向stderr的具体代码是什么?

代码是:dup2(open("/tmp/log", 65), 2),其中65是O_CREAT | O_WRONLY的值。

使用gdb重定向stderr后,如何继续进程?

关闭gdb(按control+d)将继续进程,进程会开始写入到创建的文件中。

gdb还可以用于哪些其他操作?

gdb可以用于关闭进程的文件描述符等其他操作。

➡️

继续阅读