Systemd 守护进程在新服务上重新加载

Systemd 守护进程在新服务上重新加载

我正在编写我的第一个 systemd 服务(在启动时运行)。

我很困惑在运行之前sudo systemctl daemon-reload在目录中创建(未修改)新服务文件后是否需要运行/etc/systemd/systemsudo systemctl start ...

我在互联网上找到的一些创建服务的示例提到了systemctl daemon-reload,有些则没有。

答案1

是否systemctl daemon-reload需要取决于您的服务的行为方式。来自手册页系统控制(1),

守护进程重新加载

重新加载 systemd 管理器配置。这将重新运行所有生成器(请参阅 systemd.generator(7)),重新加载所有单元文件,并重新创建整个依赖关系树。

例如,假设您的服务存在依赖性或冲突。那么你就可以使用daemon-reload.如果是简单的服务,可能不需要这个。

当您首次enable使用服务时,系统管理器配置将重新加载。因此,如果您想使用 来测试您的服务,那么一旦您完成了您的服务start就不需要了。daemon-reloadenable

同样,从 systemctl(1) 的手册页中,

启用 UNIT...、启用 PATH...

这将创建一组符号链接,如指定单元文件的 [Install] 部分中编码的那样。创建符号链接后,系统管理器配置将重新加载(以相当于守护程序重新加载的方式),以确保立即考虑更改。

如果您想要更改服务单元文件并重新测试,您可能需要daemon-reload根据这些更改进行操作。无论如何,做 a 是可以的daemon-reload,系统可能会在您start提供服务时要求您这样做。

相关内容