在nohup
命令中实现日志轮转,你可以使用logrotate
工具。logrotate
是一个用于管理日志文件的系统工具,它可以自动压缩、删除和轮转日志文件。要使用logrotate
与nohup
一起实现日志轮转,请按照以下步骤操作:
首先,确保你的系统上已经安装了logrotate
。在大多数Linux发行版中,logrotate
已经预装。如果没有,你可以使用包管理器(如apt
、yum
或pacman
)来安装它。
创建一个logrotate
配置文件,例如/etc/logrotate.d/myapp
。在这个文件中,添加以下内容:
/path/to/your/logfile.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f /var/run/myapp.pid ]; then
kill -USR1 `cat /var/run/myapp.pid`
fi
endscript
}
这个配置文件的解释如下:
/path/to/your/logfile.log
:替换为你的应用程序日志文件的路径。daily
:每天轮转日志文件。rotate 7
:保留7个轮转后的日志文件。compress
:压缩轮转后的日志文件。missingok
:如果日志文件不存在,不会产生错误。notifempty
:如果日志文件为空,不进行轮转。create 640 root adm
:创建新的日志文件,权限为640,属主为root,属组为adm。sharedscripts
:如果有多个日志文件匹配,只执行一次postrotate
脚本。postrotate
:轮转后执行的脚本。这里我们向应用程序发送USR1
信号,通知它重新打开日志文件。你需要根据你的应用程序修改这部分内容。nohup
命令,并将输出重定向到日志文件。例如:nohup /path/to/your/app --output /path/to/your/logfile.log &
现在,当你的应用程序运行时,logrotate
将自动轮转日志文件。你可以通过运行logrotate -f /etc/logrotate.d/myapp
手动触发日志轮转。