如何使 systemd 杀死或停止重生 rsyslog 守护进程
Posted
技术标签:
【中文标题】如何使 systemd 杀死或停止重生 rsyslog 守护进程【英文标题】:How to make systemd kill or stop respawning the rsyslog daemon 【发布时间】:2018-06-23 13:12:18 【问题描述】:systemd 可以让 rsyslog 守护进程在死亡时保持活跃,这真是太棒了。
但是我正在制作一个新的 rsyslog 配置文件,并且需要在调试模式下启动这个 rsyslog 守护进程。在调试rsyslogd
之前,我需要停止生产rsyslog守护进程,所以我执行了:
systemctl stop rsyslogd.service
但该命令不会停止 rsyslog 守护进程。通过 Unix 信号杀死它并不会阻止 systemd 重新生成 rsyslogd:
kill -KILL <rsyslogd-pid>
即使执行systemctl mask rsyslogd.service
也不会停止重生。
如何让 systemd 停止重生“rsyslog”守护进程,以便使用调试对其进行故障排除?
【问题讨论】:
【参考方案1】:好吧,看完这个错误报告链接:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815862
这似乎违反直觉...但实际执行的步骤是您必须停止两个 systemd 单元,而不仅仅是 rsyslog.service
:
systemctl stop syslog.socket rsyslog.service
问题解决了。
【讨论】:
澄清一下,syslog.socket
不是服务,是套接字文件,基本上它允许 systemd 按需启动 rsyslog,只有在连接到来时。
是的,你是对的,通用术语是单位,但单位也可以更多:freedesktop.org/software/systemd/man/systemd.unit.html以上是关于如何使 systemd 杀死或停止重生 rsyslog 守护进程的主要内容,如果未能解决你的问题,请参考以下文章
systemd `systemctl stop` 主动杀死子进程