Endgültige Problemumgehung für die ständige Unterbrechung der WLAN-Nutzung in MacosX
Ich habe ein System gefunden, das endlich funktioniert und das es schafft, es automatisch in einer Minute wiederherzustellen, wenn die WLAN-Freigabe seltener unterbrochen wird.
Die Lösung ist ein ~/Library/LaunchAgents/com.me.wifisharingup.plist
Daemon mit dem nächsten Inhalt:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.juanfal.wifisharingup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/mi/bin/wifisharingup.sh</string>
</array>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/Users/me/Library/Logs/wifisharingup.err</string>
<key>StandardOutPath</key>
<string>/Users/me/Library/Logs/wifisharingup.out</string>
</dict>
</plist>
Sie können sehen, dass jede Minute das folgende einfache Skript ausgeführt wird. Achten Sie darauf, dass die vorherige Liste der Root gehört, und starten Sie sie mit:
sudo chown root com.me.wifisharingup.plist
sudo launchctl load /Users/me/Library/LaunchAgents/com.me.wifisharingup.plist
Das Skript, das jede Minute gestartet wird (vergessen Sie nicht, es ausführbar zu machen), lautet:
#!/bin/sh
if [[ ! `ipconfig getifaddr en1` ]]; then
/usr/sbin/networksetup -setairportpower en1 off
/usr/sbin/networksetup -setairportpower en1 on
echo `date` >> "/Users/me/Library/Logs/wifisharingup.err"
else
touch "/Users/me/Library/Logs/wifisharingup.out"
fi
Ich denke, die einfache periodische (jede Minute) Aufforderung, ipconfig getifaddr en1
etwas in dem Wifi-Sharing-Daemon zu aktualisieren. Was auch immer es ist, sobald die WLAN-Freigabe fehlschlägt, verliert es die selbst zugewiesene IP-Adresse und ipconfig getifaddr en1
schlägt dann fehl, sodass mein Skript das WLAN vollständig zurücksetzt, so dass es seinen vorherigen Status wiederherstellt und die WLAN-Freigabe wiederherstellt.
Es funktioniert seit Tagen in einem MacMini ohne Tastatur, Maus oder Monitor, ist jedoch nur an das Ethernet angeschlossen und ermöglicht meinen WLAN-Geräten den Zugriff auf die Welt.