Systemctl 服务依赖性而不更改服务文件

Systemctl 服务依赖性而不更改服务文件

我想让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 停止。

相关内容