Linux:恢复networking连接时执行命令

我有一个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
  • 该命令(在评论中build议) 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