eth0 啟動後立即執行一些操作

eth0 啟動後立即執行一些操作

我必須執行一個需要 eth0 啟動的例程。我嘗試將其放入 /etc/rc.local 中,無論如何它無法被觸發,因為 eth0 可能尚未初始化。

有沒有辦法附加到系統的事件調度程序,以便在檢測到 eth0 啟動時啟動腳本?

答案1

AFAIK,您必須將腳本放在/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

where post-upcommand 在啟動介面後執行命令或 shell 腳本eth0(請參閱 參考資料man 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

相關內容