Systemd 根据文件内容条件启动服务

Systemd 根据文件内容条件启动服务

我实际上正在开发一个具有多种服务的模块化系统。在这个系统中,我已经有一个配置文件,我想使用这个配置文件来启用或禁用一些使用 systemd 运行的服务。配置文件可以包含类似以下内容:

...
[ServiceEnable]
Service1Enable=True
Service2Enable=False
Service3Enable=True
...

一开始我只是想用另一个服务来解析我的配置文件,并根据配置创建一些小文件,这样我的服务就可以使用条件路径存在参数,但我认为这个解决方案并不优雅。

是否有其他方法可以借助我的配置文件动态地启用或禁用某些服务?

答案1

拥有自己的包含服务状态的配置文件会重复服务管理器 (systemd)。不要这样做,因为这会增加一个不熟悉的间接层。

相反,编写并发布服务管理器配置,在本例中作为 systemd 单元。其中很多单元是可以的,几十个单元也没有问题。

使用依赖项、重启设置和可能的套接字激活等功能设置所需行为。记录如何启动和停止主要单元,以及哪些可选单元应该禁用。


单位生成器确实存在,但除非你有 多变的单元数量和创建它们的算法。

相关内容