我目前正在为我的项目测试一些程序,我目前有这个程序作为守护程序运行,我只想捕获该程序的标准输出 也许是斯特德尔...
我知道strace最好作为调试工具,但我想它不能简化到我想要的..
我在堆栈溢出上看到了答案,就像subprocess.popen(['ps'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
...但这开始了这个过程.我只想挂接到一个正在运行的进程并抓取输出......
任何答案或想法将不胜感激.. 如果在 python、bash 或 c 中
为了能够与已经运行的进程进行通信,您必须在启动这些进程之前设置观察者/侦听器。
您可以看到此用途最常见的工具,即 Tmux 和 Screen。
然后我认为您将能够对这些进程的输出做任何您想做的事情,具体取决于您将使用的工具提供的 API。
这是我看到这个问题时的第一个想法。
您可以在bash 中使用重定向,就像<<>>一样将程序的输出发送到日志文件中。假设你跑了
回声时间
你可以做
回声时间<<日志.txt
还有错误输出和什么。如果您不想查看手册页,请尝试此操作。
https://www.gnu.org/software/bash/manual/html_node/Redirections.html