systemctl edit systemd-journald是否为配置该服务的合规方式?
问题1解答:使用
systemctl edit systemd-journald配置systemd-journald.service是否是合规方式? 是合规的,但你需要先区分两类完全独立的配置场景:
- 你查阅的
journald.conf.d相关man手册列出的路径,是用来修改journald自身的功能参数的,比如日志存储位置、保留时长、限流规则、日志大小上限这类属于journald业务逻辑的配置。 systemctl edit systemd-journald修改的是systemd-journald.service这个systemd服务单元的配置,生成的/etc/systemd/system/systemd-journald.service.d/override.conf是服务单元的drop-in覆盖配置,这类配置用来调整服务的启动参数、资源限制、依赖关系、沙箱规则、环境变量等服务运行属性,相关规则收录在systemd.unit的man手册中,自然不会出现在journald配置的手册里。
如果你要调整journald的日志功能参数,不要用这个方法,建议修改/etc/systemd/journald.conf.d/下的自定义配置文件;如果你要调整journald服务的运行属性,用systemctl edit是官方推荐的合规做法。
问题2解答:多个配置目录的区别是什么?
分两类说明:
第一类:journald功能配置目录(即journald.conf.d手册列出的路径)
systemd加载配置时按优先级从低到高读取,同名参数后读取的会覆盖先读取的:
/usr/lib/systemd/journald.conf.d/*.conf:发行版官方提供的默认配置,系统更新时会被覆盖,不要手动修改此处内容/usr/local/lib/systemd/journald.conf.d/*.conf:本地自行编译安装的systemd相关组件、第三方软件放置的配置,优先级高于发行版默认配置/run/systemd/journald.conf.d/*.conf:运行时临时配置,重启系统后就会消失,一般用于动态生成的规则或者临时测试调整/etc/systemd/journald.conf.d/*.conf:系统管理员自定义的永久配置,优先级最高,会覆盖所有前面路径的同名参数/etc/systemd/journald.conf:journald的全局主配置文件,是所有配置中优先级最低的,会被上面所有.d目录下的同参数配置覆盖
第二类:systemd服务单元drop-in配置目录(即你发现的/etc/systemd/system/systemd-journald.service.d/路径)
这类路径是systemd所有服务单元共用的配置规则,优先级规则同样是后读取覆盖先读取:
/usr/lib/systemd/system/*.service:发行版提供的默认服务单元文件,系统更新会被覆盖/etc/systemd/system/*.service.d/*.conf:管理员自定义的服务单元覆盖配置,优先级最高,systemctl edit默认生成的就是这个路径下的配置文件/run/systemd/system/*.service.d/*.conf:运行时临时服务单元配置,重启后消失
内容的提问来源于stack exchange,提问作者krave
相关产品推荐
相关产品推荐

