在 CentOS 系统中,nohup 命令用于在后台运行程序,即使关闭终端或断开连接也不会终止。默认情况下,nohup 会将输出重定向到 nohup.out 文件中。如果你想要限制 nohup.out 文件的大小,可以使用 logrotate 工具来实现。
以下是如何设置 nohup.out 日志大小的步骤:
安装 logrotate(如果尚未安装):
sudo yum install logrotate
创建 logrotate 配置文件:
你可以为特定的日志文件创建一个自定义的 logrotate 配置文件,或者使用默认的配置文件并进行修改。
创建一个新的配置文件:
sudo vi /etc/logrotate.d/myapp
在文件中添加以下内容:
/path/to/your/nohup.out {
size 100M
rotate 5
compress
missingok
notifempty
create 640 root root
}
解释:
size 100M:当日志文件达到 100MB 时,进行轮转。rotate 5:保留 5 个轮转后的日志文件。compress:压缩轮转后的日志文件。missingok:如果日志文件不存在,不会报错。notifempty:如果日志文件为空,不进行轮转。create 640 root root:创建新的日志文件,权限为 640,属主和属组为 root。测试 logrotate 配置:
你可以手动测试 logrotate 配置是否正确:
sudo logrotate -f /etc/logrotate.d/myapp
确保 logrotate 定期运行:
logrotate 通常由 cron 定期运行。你可以检查 /etc/cron.daily/logrotate 文件,确保它存在并且没有被禁用。
通过以上步骤,你可以设置 nohup.out 日志文件的大小,并确保日志文件在达到指定大小时自动轮转和压缩。