eth0 启动后立即执行一些操作

eth0 启动后立即执行一些操作

我必须执行一个需要 eth0 启动的例程。我尝试将其放入 /etc/rc.local,但无论如何都无法触发,因为 eth0 可能尚未初始化。

有没有办法连接到系统的事件调度程序,以便在检测到 eth0 启动时启动脚本?

答案1

据我所知,您必须将脚本放在/etc/network/if-up.d/目录中:

sudo cp /path/to/your_routine /etc/network/if-up.d/

然后在文件中定义eth0接口后添加以下行:/etc/network/interfaces

post-up /etc/network/if-up.d/your_routine

其中,post-up命令在打开界面后运行命令或 shell 脚本eth0man interfaces有关更多信息,请参阅 - 在第 149 行的某处)。

/etc/network/interfaces以下是您编辑文件后文件的样子的示例:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
name Ethernet LAN card
address 192.168.10.1
netmask 255.255.255.0
broadcast 192.168.10.255
network 192.168.10.0
gateway 192.168.10.254
post-up /etc/network/if-up.d/your_routine
# some more interfaces
auto eth1
iface eth1 inet dhcp
# ...

完成这些更改后,重新启动网络服务:

sudo service networking restart

相关内容