gpt4 book ai didi

linux - 捕获其他程序stderr和stdout的程序

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:29 25 4
gpt4 key购买 nike


我想以 root 身份运行一个程序,该程序可以拦截其他程序的 stderrstdout
例如,假设我启动了一个 nodejs 服务器并且不知何故出现错误(日志打印到 stderr),如果我的程序正在运行,我希望它拦截这个错误.

这可能吗?我应该怎么做 ?

此外,我想到的一个想法是用另一个启动 nodejs 并将 stderr 重定向到自定义的二进制文件替换 nodejs文件。但我认为它太困惑了,我希望有更好的方法来做到这一点。

最佳答案

如果您可以控制 nodejs 的调用方式,您可以将 stderr 重定向到命名管道,然后从另一个命令读取命名管道,如下所示:

mkfifo /tmp/nodejs.stderr
nodejs 2>/tmp/nodejs.stderr

然后在其他一些 shell 类型中:

grep "Error Pattern" </tmp/nodejs.stderr

如果您无法控制如何调用 nodejs,那么您可以创建一个 shell 脚本来包装这些命令,并在调用 nodejs 的任何地方调用 shell 脚本。

关于linux - 捕获其他程序stderr和stdout的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48816219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com