我有一個嵌入式設備,如果連接到本地網絡,它將通過 systemd-networkd 連接到 DHCP 伺服器,如果沒有連接到,它將回退為 DHCP 伺服器。我還沒有實現它,但計劃使用此處描述的答案https://unix.stackexchange.com/a/309046/114497。
這個答案指出使用將在啟動時啟動的腳本。我想知道如果用戶在運行時拔下網路電纜並將其連接到 PC,他需要重新啟動開發板才能啟動腳本。所以問題是:當 systemd 的介面發生變化時,有沒有辦法啟動腳本?
PS:我嘗試使用網路調度程式沒有成功。我嘗試重新啟動systemd-networkd
服務,拔掉乙太網路電纜,但我編寫的腳本/usr/lib/networkd-dispatcher
未執行。
答案1
這回答解釋當網路發生變化時,systemd 可以做什麼...
有許多替代解決方案,但截至 06/2019 尚未實現僅使用 systemd 的直接簡單解決方案
答案2
您可以改編我的net-o-matic
腳本,該腳本目前正在監視DOWN
尋找UP
.從一個條目開始@reboot
root
crontab
。
我編寫了一個 bash 腳本來幫助解決此問題:https://github.com/waltinator/net-o-matic
它監視連接,當連接斷開時,執行用戶指定的操作來嘗試重新連接。