我使用以下命令通过SSH在服务器上运行Python脚本:
nohup python3 python_script.py>> output.txt的
它运行了很长时间并且(可能)创建了有用的输出,所以我想强制它现在停止。如何将它到目前为止的输出写入output.txt文件?
当我开始运行脚本时,文件是自动创建的,但是大小为零(到目前为止还没有写入任何内容)。
答案 0 :(得分:2)
选项3很简单:等待更长时间。选项1& 2有点棘手。如果您期望此过程有大量输出,您可以检查运行脚本的python实例的内存消耗,看它是否在增长或非常大。此外,您可以使用lsof
查看文件是否打开,并了解它正在使用它做什么。
如果您发现输出似乎在/ dev / null之类的某个位置,请查看有关重定向现有进程输出的this答案。
如果您有一个尚未刷新的巨大缓冲区,您可以尝试使用ps
获取PID,然后使用kill -STOP [PID]
暂停该过程并查看您可以在哪里使用GDB。
除非它非常痛苦,否则我可能只是重新启动整个过程,但是定期刷新脚本,也许还有一些额外的状态报告,这样你就可以知道发生了什么。如果您可以发布代码也可能有所帮助,因为根据程序的编写方式,您的情况可能还有其他选项。