我希望我的服务仅在网络完全配置(IP 地址、接口等)时启动,并在网络重新启动时重新启动我的服务(因为配置可能会更改)。为了实现这一目标,我想我需要将After=network.target
和添加Wants=network.target
到我的服务文件中。这样,每当网络重新启动时,我的服务也会重新启动,并且仅在网络完全启动后启动。
在我的centos 7 VM中,当我使用命令重新启动网络时,/etc/init.d/network restart
我注意到network.target没有变化,它仍然在运行并且没有重新启动,我尝试安装NetworkManager并重新启动它,但我没有看到任何变化。我注意到网络服务已重新启动。我们应该使用network.service而不是network.target吗?在所有在线资源中,都给出了如何使用network.target或network-pre.target、network-online.target等。
在我的 Ubuntu 18.04 VM 中,我尝试使用命令重新启动网络/etc/init.d/networking restart
,但它说文件本身不存在,也许我的 VM 有问题?我在这里也尝试安装 Network-Manager,但 network.target 状态似乎没有变化。在这里我还注意到没有 network.service 文件。这里我们使用 neplan 配置文件,但是当我使用网络管理器重新启动时,没有任何变化。
如何编写我的服务文件?或者服务文件是正确的,但我没有正确重新启动网络?基于 rpm 的发行版和 deb 的服务文件是否应该不同?