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

标签 linux bash

我有一个通过以太网电缆连接到路由器的 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/

相关文章:

arrays - 我尝试获取数组长度有什么问题?

c++ - 将 pid 从子进程传回给父进程

linux - 完全卸载r linux

linux - 通过评估 CPU 寄存器找出系统锁定时正在执行哪个 Linux 进程

linux - Linux 中的异步定时器

bash:截断文件名,使它们保持唯一

c - 具有未初始化值的 zlib 库压缩

linux - 为什么这个linux命令会影响环境变量?

python - 在 python 或 bash 循环中运行 linux cat 命令

bash - 在指定文件夹中运行脚本的快速 bash 脚本?