我有一个linux盒子通过以太网电缆连接到路由器。 从来没有拔掉电缆,linux的盒子总是打开。 我的目标是每次路由器重新启动时都在Linux上执行命令。
这个问题与这个问题非常相似,但build议的解决scheme似乎不起作用。 进一步来说:
inotifywait -e modify /sys/class/net/eth0/carrier; echo 'Change detected'
inotifywait -e modify /sys/class/net/eth0/carrier; echo 'Change detected'
从来没有检测到变化(即使从PC inotifywait
电缆),因为根据这个答案 , inotifywait
命令不能在/sys
inotifywait -e modify /etc/network/if-up.d/avahi-daemon
在路由器重启时没有检测到任何改变 你可以启动一个脚本的Linux盒子连接up
(需要ifplugd
安装)
#/etc/network/interfaces auto eth0 iface eth0 inet dhcp up /etc/network/yourscript.sh
但是,请记住,如果断开电缆连接(并在一段时间后插入),即使路由器可能尚未重新启动,脚本也会启动。
– 编辑 –
或者,放置您的脚本
/etc/network/if-up.d/
(确保它是可执行的并在更改后重新启动联网。)
根据该路由器上的Linux发行版,在启动/重新启动时运行命令的正确方法是创建启动脚本,或将命令添加到/etc/rc.local