我有一台 Apache/2.2.22 (Linux/SUSE),它每天同一时间自动重启。我没有为任何用户配置 cron 作业来执行此操作。
我开始收集状态页面的详细快照,并从中发现:
Restart Time: Friday, 31-Jan-2014 12:15:03 EET
Restart Time: Saturday, 01-Feb-2014 12:15:04 EET
Restart Time: Sunday, 02-Feb-2014 12:15:05 EET
Restart Time: Monday, 03-Feb-2014 12:15:06 EET
从状态页面的快照可以看出,重启之前没有发生任何重大流量。
每次重新启动我都会得到以下信息,/var/log/messages
而没有其他任何有趣的信息:
2014-02-03T12:15:02.576970+02:00 foobar systemd[1]: Reloading apache.
2014-02-03T12:15:03.225024+02:00 foobar start_apache2[15393]: Syntax OK
2014-02-03T12:15:03.298169+02:00 foobar systemd[1]: Reloaded apache.
知道为什么会发生这种情况吗?或者我下一步应该去哪里查看?
答案1
Apache 并未重新启动(这意味着将其关闭并重新启动)。相反,它正在重新读取其配置文件。
我敢打赌,这是由你的 logrotation 软件造成的。
如果通过将日志移动到新名称并使用旧名称创建新文件来轮换日志,则需要重新启动 apache 才能使其开始使用新文件。因此,在轮换 apache 日志时,您需要做以下两件事之一:
- 重新加载 apache 配置(这将使其开始使用新的日志文件),
- 不要移动旧文件 - 而是将内容复制到备份文件名并清空原始文件。