Linux:恢复网络连接时执行命令

时间:2015-04-08 11:54:25

标签: linux bash

我有一个通过以太网线连接到路由器的linux盒子。 电缆永远不会拔掉,linux盒子一直打开。 我的目标是每次重启路由器时都在linux机器上执行命令。

这个问题与this question非常相似,但建议的解决方案似乎不起作用。 更具体地说:

  • 命令 inotifywait -e modify /sys/class/net/eth0/carrier; echo 'Change detected'永远不会检测到更改(即使是从电脑上拔下电缆的情况),因为根据this answer命令inotifywait/sys中不起作用
  • 该命令(在评论中建议)inotifywait -e modify /etc/network/if-up.d/avahi-daemon在重新启动路由器时未检测到任何更改

2 个答案:

答案 0 :(得分:1)

您可以在使用up连接linux框后启动脚本 (需要安装ifplugd

 #/etc/network/interfaces
auto eth0
    iface eth0 inet dhcp
    up /etc/network/yourscript.sh

但是,请记住,如果断开电缆(并在一段时间后插入电源),即使路由器可能尚未重新启动,脚本也会启动。

- 编辑 -

或者,将脚本放在

/etc/network/if-up.d/ (确保它是可执行的,并在更改后重新启动网络。)

答案 1 :(得分:0)

根据该路由器上的Linux发行版,在启动/重启时运行命令的正确方法是创建启动脚本,或将命令添加到/etc/rc.local