关于如何旋转生成的输出文件有几个问题nohup
。大多数答案都说要使用logrotate
该copytruncate
选项。
然而这实际上不起作用——当发生轮换时,它会创建轮换的日志文件,但原始文件实际上并没有被截断,并且会继续附加进一步的日志输出。
如果我不使用nohup
而只是运行,也会发生这种情况myscript.py >>myscript.log
(所以基本上copytruncate
看起来完全没用)。
这样做的“正确”方法是什么?(如果需要自定义脚本,则首选 Bash 或 Python。)
答案1
正确的方法是编写代码myscript.py
,使其写入日志文件而不是标准输出,并通过关闭和重新打开其日志文件来对信号做出反应。