为什么 systemd 说它的依赖系统应该谨慎使用?

为什么 systemd 说它的依赖系统应该谨慎使用?

来自 systemd.unit(5) 手册页:

请注意,虽然 systemd 在单元之间提供了灵活的依赖系统,但建议谨慎使用此功能,而是依赖于基于总线或基于套接字的激活等技术,这些技术使依赖关系变得隐式,从而形成一个更简单、更灵活的系统。

我认为人们采用 systemd 是因为它让事情变得更简单、更灵活。现在systemd不同意了。我刚刚收到一封非常严重的邮件。

答案1

该建议旨在鼓励

更简单、更灵活的系统

更是如此比使用依赖项。

依赖关系很有用,但太多显式依赖关系引入了它们自己的约束:例如,必须检查依赖关系图是否存在循环。显式依赖也会导致强排序约束。

假设您有一个需要本地数据库的 Web 应用程序。您可以使用显式依赖关系来表示这一点:数据库必须在 Web 应用程序之前启动。您还可以使用基于套接字的激活来表示这一点:数据库侦听套接字,因此对该套接字的任何访问都可以视为启动数据库(如果数据库尚未运行)的请求。使用基于套接字的激活意味着Web应用程序的服务描述不再需要知道其对数据库的依赖关系,并且服务管理器不再需要在启动Web应用程序之前等待数据库启动。

相关内容