在 Ubuntu 系统中,nohup 命令用于在后台运行程序,即使关闭终端也能保持进程运行。默认情况下,nohup 会将输出重定向到 nohup.out 文件中,但不会自动限制日志文件的大小。如果你希望限制 nohup.out 文件的大小,可以使用 logrotate 工具来实现。
以下是设置 nohup.out 日志文件大小限制的步骤:
安装 logrotate 工具(如果尚未安装):
sudo apt-get update
sudo apt-get install logrotate
创建或编辑 logrotate 配置文件:
你需要为 nohup.out 创建一个单独的配置文件,或者将其添加到现有的配置文件中。通常,logrotate 的配置文件位于 /etc/logrotate.d/ 目录下。
创建一个新的配置文件:
sudo nano /etc/logrotate.d/myapp
在文件中添加以下内容:
/path/to/your/nohup.out {
size 100M
rotate 5
compress
missingok
notifempty
create 640 root adm
}
解释:
size 100M:当日志文件达到 100MB 时,进行轮转。rotate 5:保留最近的 5 个轮转日志文件。compress:压缩旧的日志文件。missingok:如果日志文件不存在,不会报错。notifempty:如果日志文件为空,不进行轮转。create 640 root adm:创建新的日志文件,权限为 640,属主为 root,属组为 adm。测试 logrotate 配置:
你可以手动运行 logrotate 来测试配置是否正确:
sudo logrotate -f /etc/logrotate.d/myapp
确保 logrotate 定期运行:
logrotate 通常由 cron 定期运行。你可以检查 /etc/cron.daily/logrotate 文件来确认这一点。
通过以上步骤,你可以设置 nohup.out 日志文件的大小限制,并确保日志文件不会无限增长。