nohup
命令允许你在后台运行程序,即使你关闭终端
nohup python your_script.py > output.log 2>&1 &
这将把标准输出(stdout)和标准错误(stderr)重定向到名为 output.log
的文件中。默认情况下,nohup.out
文件将包含所有输出。
要限制日志文件的大小,你可以使用 logrotate
工具。首先,确保你的系统已经安装了 logrotate
。然后,创建一个名为 your_script.logrotate
的配置文件,如下所示:
/path/to/your_script.log {
size 10M
rotate 5
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/path/to/your_script.sh restart
endscript
}
在这个配置文件中:
/path/to/your_script.log
是日志文件的路径。size 10M
表示当日志文件大小达到 10MB 时,logrotate
将对其进行压缩和切割。rotate 5
表示保留最近的 5 个日志文件。missingok
、notifempty
等)用于处理日志文件不存在或空的情况。接下来,编辑 /etc/logrotate.d/your_script
文件,将 your_script.logrotate
配置文件的内容粘贴到其中,并确保文件的第一行包含正确的 logrotate
版本号(通常是 version 3
或更高)。
最后,运行以下命令以应用配置:
sudo logrotate -f /etc/logrotate.d/your_script
这将强制 logrotate
立即应用配置,而不是等待下一次计划运行。
现在,你的日志文件大小将受到限制,当日志文件达到指定大小时,logrotate
将自动对其进行压缩和切割。