
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 eth0
die Schnittstelle in /etc/network/interfaces
der Datei definiert haben:
post-up /etc/network/if-up.d/your_routine
Wobei post-up
der Befehl den Befehl oder das Shell-Skript ausführt, nachdem die Schnittstelle aufgerufen wurde eth0
( man interfaces
weitere Informationen finden Sie irgendwo in Zeile 149).
Hier ist ein Beispiel, wie die /etc/network/interfaces
Datei 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