我一直在使用 systemd 的 dbus API,并且我一直在使用 EnableUnitFiles() 函数启用服务,详细信息请参见此处 http://www.freedesktop.org/wiki/Software/systemd/dbus/
但是,当我尝试使用命令禁用相同的服务时
systemctl disable "service_name"
然后通过
检查该服务是否被禁用systemctl status "service_name"
它仍然显示要启用的服务。我目前运行的是 Centos7。
任何关于我为何无法禁用该服务的见解将不胜感激。 谢谢!
尝试使用 systemd
mask
命令而不是 disable
:
systemctl mask <service_name>
disable
命令仍然允许启动服务,例如,响应另一个服务请求它作为依赖项(即使是可选的),或手动启动。但是 mask
完全禁用该服务。
另外,我不相信
mask
或 disable
实际上会停止正在运行的服务:它们只是配置该服务将来的启动。因此,你也应该这样做systemctl stop <service_name>
。
chmod -x <service exec>
或重命名它
我只是像这样禁用了 OpenVPN 服务器。 systemctl禁用或systemctl掩码不起作用。重新启动后,服务仍然存在(Ubuntu Server 22.04)。
我知道这不是一个优雅的解决方案,但它是唯一有效的解决方案。