![Systemctl 服务依赖性而不更改服务文件](https://linux22.com/image/730779/Systemctl%20%E6%9C%8D%E5%8A%A1%E4%BE%9D%E8%B5%96%E6%80%A7%E8%80%8C%E4%B8%8D%E6%9B%B4%E6%94%B9%E6%9C%8D%E5%8A%A1%E6%96%87%E4%BB%B6.png)
我想让nginx
服务依赖于我编写的服务,比如说abc.service
。依赖是指:
nginx
当我停止时服务应该停止abc
nginx
当我启动时服务应该启动abc
一种典型的方法是修改/lib/systemd/system/nginx.service
和添加Wants abc
指令。但是,我不想修改nginx.service
文件 - 因为这是随 nginx 包一起提供的。
还有其他方法可以做到这一点吗?
答案1
切勿修改 中交付的单元/lib/systemd/system
,这些单元由包裹所有者运送,并且可能会在包裹升级时被覆盖。
选项1:创建单位的副本/etc/systemd/system
并进行修改。然后systemctl daemon-reload
你就完成了。/etc/systemd/system
是本地单位的位置 =>https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Unit%20File%20Load%20Path
选项 2:按照 Gerald Schneider 的建议创建一个插入文件。
root@host# mkdir /etc/systemd/system/nginx.service.d root@host# cat /etc/systemd/system/nginx.service.d/mydeps.conf [Unit] Wants=abc.service
您可能还需要 abc.service 中的一个指令,以便在 abc 停止时让 nginx 停止。