小编And*_*ate的帖子

新贵不会在 logrotation 上重新打开日志文件

我们使用 upstart 在我们的 Ubuntu 服务器上管理我们的服务。他们产生的日志被登出到 /var/log/upstart/SERVICE_NAME.log

然后每天使用 12.04 LTS 附带的 logrotation 脚本轮换日志文件:

/var/log/upstart/*.log {
        daily
        missingok
        rotate 7
        compress
        notifempty
        nocreate
}
Run Code Online (Sandbox Code Playgroud)

问题是,虽然 logrotate 移动文件,但它似乎没有向 upstart 发出关闭和重新打开文件的信号,让 upstart 进程写入删除 PID。

init          1       root    8w      REG              202,1        64       2431 /var/log/upstart/dbus.log.1 (deleted)
init          1       root   13w      REG              202,1        95       2507 /var/log/upstart/acpid.log.1 (deleted)
init          1       root   14w      REG              202,1       127      17377 /var/log/upstart/whoopsie.log.1 (deleted)
init          1       root   36w      REG              202,1       122       6747 /var/log/upstart/SERVICE_NAME.log.1 (deleted)
init          1       root   37w      REG              202,1        30       6762 
Run Code Online (Sandbox Code Playgroud)

显然,我可以将自己服务的输出重定向到其他日志文件,但问题仍然存在于系统进程中。此外,我宁愿不必建造比我需要的更多的基础设施。

upstart init logrotate

10
推荐指数
2
解决办法
1648
查看次数

标签 统计

init ×1

logrotate ×1

upstart ×1