题 修改后是否必须重新加载systemd单元文件?


假设我写了一个 mine.service 文件。然后我用 systemctl enable mine.service

如果我以后决定编辑 mine.service,我要告诉你 systemd 那 mine.service 被改变了?如果是这样,我该怎么做?


94
2018-06-23 03:17






答案:


在对单元文件进行更改后,应该运行 systemctl daemon-reload,如概述 这里

守护重装
  重新加载systemd管理器配置。这将重新运行所有发电机(见 systemd.generator(7)),重新加载所有单元文件,并重新创建整个依赖关系树。在重新加载守护程序时,代表用户配置的所有套接字systemd将保持可访问状态。

然后,您可以根据需要重新启动(或重新加载)您的服务

systemctl restart your-service-name

(守护进程重装不会重新加载/重启服务本身,只是让systemd知道新配置)


113
2018-06-23 11:38



我发现我还需要跑一个 systemctl restart 实际重启服务本身... - hwjp
以防万一, daemon-reload 不是普遍的,必须运行 systemctl --user daemon-reload 用于用户服务。 - Olegs Jeremejevs


作为上述答案的补充:如果你改变了一些东西 [Install] 指令,您可能需要运行 sudo systemctl reenable YOURUNITFILE 为了重新创建.target目录中的符号链接。


1
2017-08-19 13:01



这对我有用!没有得到它为什么systemctl没有重新加载服务文件。 - antonagestam