CentOS 7 cPanel服务器修改atop日志间隔未生效且触发systemd警告的处理咨询
CentOS 7 cPanel服务器修改atop日志间隔未生效且触发systemd警告的处理咨询
别担心,这个问题其实很常见,咱们一步步来解决:
先处理当前的systemd警告和未生效的配置
- 首先,你看到的
Warning: atop.service changed on disk. Run 'systemctl daemon-reload' to reload units.警告,是因为你直接修改了systemd的服务配置文件,但systemd还没识别到这个修改。systemctl daemon-reload这个命令非常安全,它只会重新加载所有systemd服务的配置文件,不会重启任何正在运行的服务,也不会影响系统其他组件,放心执行就好:systemctl daemon-reload - 重新加载配置后,再重启atop服务,让新的日志间隔生效:
systemctl restart atop.service - 现在再检查atop的状态,看看主进程的命令行参数里是不是已经变成
60了:
正常情况下,你会看到类似systemctl status atop.service/usr/bin/atop -w /var/log/atop/atop_******** 60的输出,说明日志间隔已经改成60秒了。
解释之前的操作误区
- 你之前修改的
/etc/systemd/system/multi-user.target.wants/atop.service其实是个软链接,指向的就是你后来修改的/usr/lib/systemd/system/atop.service,所以改那个软链接对应的文件没用,直接改源文件是对的,但需要让systemd重新加载配置才会生效。 - 而
/usr/share/atop/atop.daily是atop的日志轮转脚本,负责清理旧日志,和实时记录的日志间隔没关系,修改这个文件不会改变atop的采样频率。
更安全的配置修改方式(推荐)
直接修改/usr/lib/systemd/system/atop.service有个缺点:如果以后系统更新atop包,这个默认配置文件可能会被覆盖。更稳妥的方式是用systemd的override功能,创建自定义的配置片段:
- 执行命令打开atop服务的override编辑界面:
systemctl edit atop.service - 在打开的编辑器里输入以下内容:
[Service] Environment="LOGINTERVAL=60" - 保存退出后,systemd会自动重新加载配置,你只需要重启atop服务就可以了:
这种方式的配置会保存在systemctl restart atop.service/etc/systemd/system/atop.service.d/override.conf,不会被系统更新覆盖,更安全。
备注:内容来源于stack exchange,提问作者linuxtale
相关产品推荐
相关产品推荐

