daemon-reload 和 reload 有什么区别?

daemon-reload 和 reload 有什么区别?

daemon-reload - 加载正在运行的指定单元的单元配置文件,以便在不停止服务的情况下更改单元文件配置。请注意,这与 reload 命令不同

reload - 加载正在运行的指定单元的服务配置文件,以便在不停止服务的情况下更改服务配置。请注意,这与 daemon-reload 命令不同。

这里的 unit 和 service 是什么?例如 apache2.service 是一个 service 类型的 unit。那么上面描述中的 service 是什么?

答案1

daemon-reload将重新加载 systemd 文件。如果您更改了 中的服务文件/etc/systemd/system/daemon-reload将重新加载这些文件。

例如,您意识到服务重新启动之间需要 5 秒的超时时间。您在服务文件中添加该超时时间并创建一个daemon-reload。这将导致下次服务重新启动时超时。服务配置不会受到该更改的影响。

reload将重新加载特定服务。这意味着 systemd 将向服务发送 SIGHUP 信号,该信号将告诉服务重新加载其配置文件,这与 systemd 配置文件无关。

例如,apache 有一个文件httpd.conf。使用reload,systemd 将向正在运行的 apache 发送 SIGHUP,告诉它重新加载配置文件。但是,这不会改变 systemd 处理该服务的方式。

reload必须提供附加参数,告知哪些服务将接收 SIGHUP 信号。您daemon-reload无需提供任何附加参数,因为 systemd 将检查其所有服务文件是否有更改并重新加载它们。

手册上没有写,但我猜想服务必须支持重新加载才能使重新加载成功。否则,您必须重新启动它才能强制它重新加载配置。

相关内容