我正在運行 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
嗎?- 還有其他創意解決方案嗎?