我可以删除 nohup.out,因为它停止写入了吗?

can i delete nohup.out, Because it stopped writing?

我在后台的 AWS Lightsail linux 服务器中执行了一段 python 代码 它包含 5M 记录插入,每次插入后我都添加了日志。 我在 852 之后没有看到日志输出。

我可以看到我的进程还在运行后台

如果我删除 nohup.out 文件,它会用新日志重新创建该文件吗? 如何查看 python 代码的实际日志?

我假设您是这样使用 nohup 启动程序的:

nohup your_program maybe some arguments &

nohup 命令会将输出重定向到 nohup.out ,然后再启动您的程序 。您的程序不知道输出已重定向。这就是为什么你不能让它重新创建输出文件 nohup.out.

如果删除 nohup.out,您只会删除目录条目。在您的程序终止(或关闭 stdoutstderr)之前,该文件仍将作为 inode 存在于您的磁盘上并包含所有数据,但您无法再通过其名称访问该文件。

如果您没有看到任何新的输出,则您的程序没有产生任何输出。请注意,输出可能已被缓冲,因此只有当程序写入一定数量的数据时,它才会出现在文件中。 你必须检查你的程序在做什么。它可能以某种方式被阻止,或者您的程序中可能有错误。

或许您可以使用 strace 检查您的程序完成了哪些系统调用。