如何获取其他程序应用程序的控制台输出(且仅输出)?
How do I grab the console output (and only output) of an other program's application?
我正在编写一个 python 代码,它将在 Raspberry pi 中作为守护进程运行。然而,我写这篇文章的人想要看到它在 运行 时获得的原始输出,而不仅仅是我的日志文件。
我的第一个想法是使用 bash 脚本和 Screen 程序,但它有一些我无法拥有的功能。主要是通过Screen程序杀掉程序的能力。
有没有一种方法可以让我编写一个程序(最好是 python)或 bash 脚本,能够读取另一个程序 运行 的输出,但不能发送任何东西给它?
谢谢。
最简单的就是 bash 命令
tail -f my_logfile.txt
这假定您已经登录到一个文件...
如果你想窥探另一个进程的标准输出流,你可以使用 strace(也 bash)
export PID=$(pgrep my_program)
strace -p$PID -s9999 -e write
您可以通过调用
获取标准输出流
cat /proc/<pid>/fd/1
我正在编写一个 python 代码,它将在 Raspberry pi 中作为守护进程运行。然而,我写这篇文章的人想要看到它在 运行 时获得的原始输出,而不仅仅是我的日志文件。
我的第一个想法是使用 bash 脚本和 Screen 程序,但它有一些我无法拥有的功能。主要是通过Screen程序杀掉程序的能力。
有没有一种方法可以让我编写一个程序(最好是 python)或 bash 脚本,能够读取另一个程序 运行 的输出,但不能发送任何东西给它?
谢谢。
最简单的就是 bash 命令
tail -f my_logfile.txt
这假定您已经登录到一个文件...
如果你想窥探另一个进程的标准输出流,你可以使用 strace(也 bash)
export PID=$(pgrep my_program)
strace -p$PID -s9999 -e write
您可以通过调用
获取标准输出流cat /proc/<pid>/fd/1