我有一个通过以太网电缆连接到路由器的 linux 盒子。 电缆永远不会拔掉,linux 盒子总是开着。 我的目标是每次重新启动路由器时在 linux 机器上执行一条命令。
这个问题与this question非常相似但建议的解决方案似乎不起作用。 更具体地说:
- 命令
inotifywait -e 修改/sys/class/net/eth0/carrier; echo 'Change detected'
永远不会检测到变化(即使在电缆从 pc 上拔下的情况下),因为根据 this answer命令inotifywait
在/sys
中不起作用
- 命令(在评论中建议)
inotifywait -e modify/etc/network/if-up.d/avahi-daemon
在路由器重新启动时未检测到任何更改
最佳答案
您可以在使用 up
连接 linux box 后启动脚本
(需要安装 ifplugd
)
#/etc/network/interfaces
auto eth0
iface eth0 inet dhcp
up /etc/network/yourscript.sh
但是,请记住,如果您断开电缆(并在一段时间后插入),即使路由器可能尚未重新启动,脚本也会启动。
--编辑--
或者,将您的脚本放在
/etc/network/if-up.d/
(确保可执行,修改后重启网络)
关于Linux:恢复网络连接时执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29513880/