如何使systemd停止重新生成rsyslog守护进程

Joh*_*ene 5 rsyslog systemd

很高兴systemd可以保持rsyslog守护进程活着,即使它死了.

但是我正在制作一个新的rsyslog配置文件,需要在调试模式下启动这个rsyslog守护进程.在我调试之前rsyslogd,我需要停止生产rsyslog守护进程,所以我执行了:

systemctl stop rsyslogd.service
Run Code Online (Sandbox Code Playgroud)

但该命令不会停止rsyslog守护程序.通过Unix信号杀死它不会阻止systemd重新生成rsyslogd:

kill -KILL <rsyslogd-pid>
Run Code Online (Sandbox Code Playgroud)

即使执行systemctl mask rsyslogd.service也不会停止重生.

如何让systemd STOP重生'rsyslog'守护进程,以便我可以使用debug对其进行故障排除?

Joh*_*ene 11

那么,在阅读此错误报告链接后:https://bugs.debian.org/cgi-bin/bugreport.cgi?video = 815862

这看似违反直觉......但实际执行的步骤是你必须停止两个系统单位,而不仅仅是rsyslog.service:

systemctl stop syslog.socket rsyslog.service
Run Code Online (Sandbox Code Playgroud)

问题解决了.

  • 为了明确起见,`syslog.socket`不是服务,而是套接字文件,基本上,它允许systemd仅在连接出现时才根据需要启动rsyslog。 (2认同)