如何在 systemd 单元中正确使用“Requires”选项?

如何在 systemd 单元中正确使用“Requires”选项?

在使用一些自己编写的 systemd 服务运行这台主机多年后没有出现任何问题,在我进行了一些需要 mariadb 关闭一段时间的计划维护后,我收到了多次投诉。原来我已经把

Requires = mariadb.service

在单元文件中,这些单元在 mariadb 关闭时由于依赖冲突而终止。

这并不奇怪,但有些危险,因为显然 systemd 不会自动检查由于服务暂时关闭而停止的单元是否可以在依赖的服务再次启动时重新启动。

我只是删除了依赖关系并让服务处理丢失的数据库;最坏的情况是它们会崩溃并由 systemd 自动重新启动。

有没有“更清洁”的方法?我怎么知道我不会以同样的方式意外杀死一些重要的系统服务?

是的,我读过这个:了解 systemd“Requires=”选项。但它处理的是不同的问题。

相关内容