Führen Sie eine Operation aus, sobald eth0 aktiv ist

Führen Sie eine Operation aus, sobald eth0 aktiv ist

Ich muss eine Routine ausführen, die erfordert, dass eth0 aktiv ist. Ich habe versucht, sie in /etc/rc.local einzufügen, sie konnte jedoch nicht ausgelöst werden, da eth0 noch nicht initialisiert sein konnte.

Gibt es eine Möglichkeit, eine Verbindung zum Ereignisdispatcher des Systems herzustellen, um ein Skript zu starten, wenn erkannt wird, dass eth0 aktiv ist?

Antwort1

Soweit ich weiß, müssen Sie Ihr Skript im folgenden Verzeichnis platzieren /etc/network/if-up.d/:

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

Fügen Sie dann die folgende Zeile hinzu, nachdem Sie eth0die Schnittstelle in /etc/network/interfacesder Datei definiert haben:

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

Wobei post-upder Befehl den Befehl oder das Shell-Skript ausführt, nachdem die Schnittstelle aufgerufen wurde eth0( man interfacesweitere Informationen finden Sie irgendwo in Zeile 149).

Hier ist ein Beispiel, wie die /etc/network/interfacesDatei nach der Bearbeitung aussehen sollte:

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
# ...

Starten Sie den Netzwerkdienst nach diesen Änderungen neu:

sudo service networking restart

verwandte Informationen