如何获取已经运行的程序的输出?

如何获取已经运行的程序的输出?

我有一个 python 程序,它输出到stdout一个日志文件。

但是,我为其制作此文件的人想知道我是否可以对其进行设置,以便他可以在文件在不同终端或后台运行时看到文件的输出。例如,程序在启动时启动,他想ssh进入它并查看它正在运行的输出。

那么有没有办法查看当前正在运行的进程的输出呢?

如果可能的话,最好使用 bash 或 python。

答案1

我看到两个选择。一,他可以用来tail -f查看正在写入的日志文件,或者二,他可以让程序在一个screen(或类似的)会话中启动,稍后他可以(重新)附加到该会话。

如果他不知道日志文件的位置,他可以使用topps类似的工具来查找进程 ID,然后运行lsof -p1234​​where 1234 is the process id 来列出该进程的打开文件。

答案2

我个人更喜欢使用less它来做同样的事情。

less your_file

启动后lessF命令(不是命令行标志)将开始主动监视文件末尾。在此模式下观看文件末尾时CTRL-c将停止附加输出less并允许您翻页。非常便利。

相关内容