使用 systemd 在乙太網路連接/斷開上執行腳本

使用 systemd 在乙太網路連接/斷開上執行腳本

我有一個嵌入式設備,如果連接到本地網絡,它將通過 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它監視連接,當連接斷開時,執行用戶指定的操作來嘗試重新連接。

相關內容