在 Debian 系统中,nohup 命令用于在后台运行程序,并且不受挂起(SIGHUP)信号的影响。nohup 通常与输出重定向一起使用,以便将程序的输出保存到文件中,即使终端关闭也能继续运行。
默认情况下,nohup 会将输出重定向到一个名为 nohup.out 的文件中。如果你想要使用日志轮转机制来管理这个文件,可以使用 logrotate 工具。
logrotate 是一个系统工具,用于管理日志文件的轮转、压缩和删除。它可以根据配置文件中的规则自动执行这些操作。
要为 nohup.out 文件设置日志轮转,你需要创建一个 logrotate 配置文件。以下是一个简单的示例:
/etc/logrotate.d/myapp:sudo nano /etc/logrotate.d/myapp
/path/to/your/nohup.out {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
这个配置文件的解释如下:
/path/to/your/nohup.out:指定要轮转的日志文件的路径。daily:每天轮转一次日志文件。rotate 7:保留最近 7 个轮转的日志文件。compress:压缩旧的日志文件。missingok:如果日志文件不存在,不会产生错误。notifempty:如果日志文件为空,不进行轮转。create 640 root adm:创建新的日志文件,权限为 640,属主为 root,属组为 adm。现在,logrotate 将根据配置文件的规则自动轮转 nohup.out 文件。你可以手动运行 logrotate 命令来立即执行轮转:
sudo logrotate -f /etc/logrotate.d/myapp
这将强制执行 /etc/logrotate.d/myapp 配置文件中的轮转规则。