使用 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它监视连接,当连接断开时,执行用户指定的操作来尝试重新连接。

相关内容