systemctl
我有一个 systemd 定义的服务,除非我先停止,否则无法重新启动该服务。Systemctl
声称该单位不存在。每次我重新启动时都会发生这种情况,直到我执行systemctl stop
。如何确保服务可以正确重新启动而无需先调用systemctl stop
?
例子:
# systemctl restart merlind.service
Failed to restart merlind.service: Unit not found.
# systemctl stop merlind.service
# systemctl restart merlind.service
Systemd服务定义:
[Unit]
Description=Merlin
After=network.target
[Service]
ExecStart=/usr/bin/merlind --config /path/to/conf --debug
ExecStop=/usr/bin/merlind --config /path/to/conf --kill
Restart=always
[Install]
WantedBy=multi-user.target
.service 文件位于/usr/lib/systemd/system/
并符号链接于:/etc/systemd/system/multi-user.target.wants/
CentOS Linux 版本 7.5.1804(核心)
系统版本:219
答案1
在这种情况下,我有另一个服务,我们称之为ServiceA
,需要Merlin
在此处进行描述,以及一些其他服务。然而,ServiceA
系统中缺少所需的服务之一。修复此依赖性后,还修复了 Merlin 服务的问题,该服务可以在重新启动时立即重新启动,而无需先执行stop
.