Gibt es eine Möglichkeit, ein Skript jedes Mal auszuführen, wenn eine Netzwerkschnittstelle fertig ist? Oder gibt es eine gleichwertige Antwort auf diese Debian-Frage unter OSX?
7
Gibt es eine Möglichkeit, ein Skript jedes Mal auszuführen, wenn eine Netzwerkschnittstelle fertig ist? Oder gibt es eine gleichwertige Antwort auf diese Debian-Frage unter OSX?
Ich habe diese Lösung noch nicht selbst ausprobiert, aber diesen Thread gefunden: /superuser/201478/run-script-in-os-x-10-6-on-network-connection-like -etc-network-if-up-d / 261004 # 261004
Sie sollten die Verwendung von crankd in Betracht ziehen , mit der Sie Skripts genau als Reaktion auf viele Systemereignisse wie Netzwerkänderungen, Dateisystemaktivität, Anwendungsstart usw. ausführen können.
Da ich keine vernünftige Dokumentation finden konnte, schrieb ich auch einen kleinen Blog-Beitrag über die ersten Schritte mit crankd .
Das Folgende funktioniert unter Mac OS X 10.11.3 (El Capitan)
Erstellen Sie eine Datei: networkchange.plist
Und registrieren Sie es mit:
Beachten Sie, dass das Skript von dem Benutzer ausgeführt wird, der die Liste registriert.
quelle
<string>/private/var/run/resolv.conf</string>
Andere sind nur Symlinks zu /private/var/run/resolv.conf.Ein Launchd Agent
/etc/resolv.conf
, der sich umschaut, und zwei netzwerkbezogene .plist-Dateien unter/Library/Preferences/SystemConfiguration/
scheinen für mich zu funktionieren (in Mac OS X 10.8.4):Ich hatte vorher nur /etc/resolv.conf verwendet, aber es gab Fälle, in denen das nicht genug war.
quelle
/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
arbeitet für mich am neuesten MBP mit Sierra. Vielen Dank!Ich habe dieses Skript erhalten:
Es überprüft ein Netzwerk 10 Mal und das Netzwerk hat 2 * 10 Sekunden Zeit, um aufzustehen.
quelle