我用来systemd-networkd
配置我的网络,基本上只有:
cat /etc/systemd/network/eth1-dhcp.network
[Match]
Name=eth1
[Network]
DHCP=yes
但现在,当网络出现故障时,我需要对我的系统(类似树莓派的设备)进行一些更改。我尝试过一些事情。
-1 我注意到我可以观看/sys/class/net/eth1/carrier
for 但它仅在物理网络连接更改时才会更改。
-2 当我运行时,journalctl -fu systemd-networkd
我可以观察 systemd-networkd 对网络连接变化的反应。
-3 我尝试添加如下脚本:
cat /etc/network/if-down.d/downTrigger.sh
#!/bin/sh
/usr/bin/echo `/usr/bin/date` > /run/justDownTriggered
ls -l /etc/network/if-down.d/downTrigger.sh
-rwxr-xr-x 1 root root 65 Apr 2 22:03 /etc/network/if-down.d/downTrigger.sh
所述脚本手动运行得很好,但当我断开网络时不会运行。我if-post-down.d
也尝试了一个变体。这些触发器是否可能与 systemd-networkd 分开?
最重要的是,我想连接一些东西,这样run
当 eth1 网络按照我当前顶部的 systemd-networkd 配置出现故障时,我可以写入文件或发送信号或其他任何内容。是否可以?当出现这种情况时我实际想要运行的命令是:
`systemctl restart my_other_service`
当网络出现故障时。如果有一种方法可以将这种依赖关系放入文件中my_other_serivce.service
,我会全力以赴。触发因素是当网络出现故障时它应该重新启动(而不是停止)。
(我在 Debian 10 上运行)