我正在运行 CentOS8 (8.1.1911) 最小安装,以便运行 Web 服务器。
一些服务,/etc/systemd/system/multi-user.target.wants/
例如
httpd.service
mariadb.service
named.service
squid.service
sshd.service
postfix.service
有After=network.target
且无network-online.target
。
这是一个问题,因为在系统启动时,这些服务在网络准备就绪之前启动,并且无法绑定到任何侦听端口。幸运的是,一对夫妇喜欢sshd
不断重试绑定,一旦网络上线,他们就成功了。在最终成功之前,您可以看到/var/log/messages
失败的绑定尝试。然而,并非所有服务都会重试,并且在第一次失败后仍然处于死亡状态。
我知道一种解决方案是使用ie run为每个服务添加自定义参数Wants
/After
systemctl
systemctl edit httpd
并添加
[Unit]
Wants=network-online.target
After=network-online.target
这是可行的,服务现在将等待网络上线并成功绑定并在重新启动时启动。
现在我的问题。
我不想手动编辑要添加的每个服务,network-online.target
因为这会造成维护麻烦,并且有可能在将来安装的新服务上忘记此步骤。我想要的是一种设置策略或在系统范围内进行更改的方法,任何带有Wants
/ After
for 的服务network.target
都会表现得好像正在等待network-online.target
.
NetworkManager
既然还要等待,这会产生问题network.target
吗?可以NetworkManager
改为等待其他事情吗?network.target
如果全部等待,还有其他可能会中断的服务network-online.target
吗?- 还有其他创意解决方案吗?