Answers:
我的服务遗忘秘方(请小心rm
声明!)
systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
rm /etc/systemd/system/[servicename] symlinks that might be related
systemctl daemon-reload
systemctl reset-failed
systemd服务可能会“包装” /etc/init.d中的旧样式脚本,因此您可能也希望清除它们,但这不是 systemd服务所处的位置。
/etc/init.d/[servicename]
在跑步前移走systemctl reset-failed
systemctl cat [servicename]
。
您可能正在寻找reset-failed
:
$ sudo systemctl reset-failed
$
从系统手册页:
reset-failed [PATTERN...]
重置指定单元的“失败”状态,或者如果未传递任何单元名称,则重置所有单元的状态。当某个单元以某种方式发生故障(即,进程以非零错误代码退出,异常终止或超时)时,它将自动进入“失败”状态,并记录退出代码和状态以供管理员进行自省,直到该服务使用此命令重新启动或重置。
添加到@ mark-lakata的答案,并牢记该rm
命令所需的注意性。[chkconfig]
可以简化过程!(单击此处以了解chkconfig)
要重复命令列表:
systemctl stop [servicename]
chkconfig [servicename] off
systemctl daemon-reload
systemctl reset-failed
注意:根据您是否要在当前会话中保持服务运行,第一条命令是可选的(对于此问题,应使用该命令)。
第二个命令负责禁用和删除服务(遵循符号链接)。
chkconfig
是启用/禁用SysVinit服务的原始命令。在使用的系统中systemd
,它可能作为向后兼容命令出现;但是本地systemctl
命令非常简单:systemctl disable [servicename]
从systemd删除服务:
Systemd使用unit(文件定义服务)来删除必须删除的服务...这是单元位置的列表:
/etc/systemd/system/ (and sub directories)
/usr/local/etc/systemd/system/ (and sub directories)
~/.config/systemd/user/ (and sub directories)
/usr/lib/systemd/ (and sub directories)
/usr/local/lib/systemd/ (and sub directories)
/etc/init.d/ (Converted old service system)
刷新systemd:
systemctl daemon-reload
systemctl reset-failed
鬼服务(未找到):
即使由于多种原因删除了该单元,Systemd仍可以列出幻影(未找到)服务
(*)如果某个服务在其他单元中被提及但不存在,那么即使没有单元文件,systemd仍会以未找到状态列出该服务...您可以通过文本搜索来搜索正在使用该服务的单元并编辑这些单元(如果以后打算安装该服务,则不建议使用)
/usr/lib/systemd/system
和/etc/systemd/system/
。仅供参考,请参阅:access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/...