Gibt es eine Möglichkeit, ein Skript auszuführen, wenn eine Netzwerkschnittstelle in Mac OS X angezeigt wird?
Ich habe versucht, ein Skript mit dem Namen ip-up in / etc / ppp abzulegen, aber es scheint nicht zu funktionieren, wenn ich die Verbindung zu einem drahtlosen Netzwerk trenne und wieder herstelle.
Ich würde es vorziehen, keinen Cron-Job ausführen zu müssen, um ständig zu überprüfen, ob sich der Netzwerkstatus geändert hat. In einigen Linux-Distributionen können Sie dies erreichen, indem Sie ein Skript in /etc/network/if-up.d/ einfügen. Gibt es etwas Ähnliches für Mac OS X?
Ein Started Agent
/etc/resolv.conf
und zwei netzwerkbezogene .plist-Dateien/Library/Preferences/SystemConfiguration/
scheinen für mich zu funktionieren (unter 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
<plist version="1.0">
Tag fehlt. [1] [ apple.stackexchange.com/a/181127/56862]SystemConfiguration
Dateien ändern ? Wenn ich ein Netzwerkkabel ein- oder ausstecke, scheint sich nichts zu ändern/etc/resolv.conf
Datei gelöscht und gelesen wird, wenn sich mein WLAN-Status ändert, daher bin ich mir nicht sicher, warum sie nur beim Trennen der Verbindung ausgeführt wird.Sie sollten die Verwendung von crankd in Betracht ziehen , mit dem Sie Skripte genau dann ausführen können, wenn auf viele Systemereignisse wie Netzwerkänderungen, Dateisystemaktivität, Anwendungsstart usw. reagiert wird.
Da ich keine vernünftige Dokumentation finden konnte, schrieb ich auch einen kleinen Blog-Beitrag über die ersten Schritte mit Crankd .
quelle
Dies scheint in bash zu funktionieren:
Ersetzen Sie
echo change
mit Ihrem Befehl, wobei Sie berücksichtigen, dass Sie Folgendes verwenden müssen, wenn Sie irgendetwas in Ihrem Befehl zitieren müssen'\''
:quelle
ControlPlane: „Kontextsensitives Rechnen“
ControlPlane ist ein direkter Port von MarcoPolo und in der Tat funktioniert ein Großteil der Konfiguration von MarcoPolo immer noch mit ControlPlane, nur besser! ControlPlane unterstützt Intel-basierte 32- und 64-Bit-Macs mit Snow Leopard und höher.
quelle
Beginnen Sie mit launchd. Möglicherweise können Sie ähnliche Funktionen verwenden.
EDIT : 9 Jahre später vielleicht nicht. Laut diesem Wikipedia-Eintrag :
Im Jahr 2014 hat Apple mit OS X 10.10 und iOS 8 den Code für launchd auf die Closed Source-Version von libxpc verschoben
quelle