无法禁用 systemd 服务
Posted
技术标签:
【中文标题】无法禁用 systemd 服务【英文标题】:Cannot disable systemd service 【发布时间】:2015-08-23 14:33:36 【问题描述】:我一直在使用来自 systemd 的 dbus API,并且我一直在使用 EnableUnitFiles() 函数启用服务,详见此处http://www.freedesktop.org/wiki/Software/systemd/dbus/
但是,当我尝试使用命令禁用相同的服务时
systemctl disable "service_name"
并跟进检查服务是否被禁用
systemctl status "service_name"
它仍然显示要启用的服务。我目前正在运行 Centos7。
任何关于我为什么不能禁用该服务的见解都将不胜感激。 谢谢!
【问题讨论】:
【参考方案1】:尝试 systemd mask
命令而不是 disable
:
systemctl mask <service_name>
disable
命令仍然允许启动服务,例如,响应另一个服务请求它作为依赖项(即使是可选的),或者手动启动。但是mask
完全禁用了该服务。
另外,我不相信mask
或disable
实际上会停止正在运行的服务:他们只是配置了该服务在未来的启动。因此,你也应该这样做systemctl stop <service_name>
。
【讨论】:
好的,非常感谢。虽然我想知道为什么在我执行systemctl disable "service_name"
并使用systemctl status "service_name"
进行检查后,它仍然在“已加载:”字段中显示它已启用?无论如何将此状态更改为禁用,而不是掩码将其更改为 /dev/null。谢谢!
谢谢。在我看来,这是一个糟糕的设计,disable
应该做 mask
所做的事情,并且可能还有另一种选择,例如 soft-disable
目前与 disable
做的事情。以上是关于无法禁用 systemd 服务的主要内容,如果未能解决你的问题,请参考以下文章