Soluzione definitiva alla suddivisione costante della condivisione wifi in MacosX
Ho trovato un sistema che finalmente funziona e quando, meno frequentemente si interrompe la condivisione wifi, riesce a recuperarlo automaticamente in un minuto.
La soluzione è un ~/Library/LaunchAgents/com.me.wifisharingup.plist
demone con i seguenti contenuti:
<?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>
Puoi vedere ogni minuto che esegue il semplice script che segue. Fai attenzione a far sì che il plist precedente sia di proprietà del root e avvialo con:
sudo chown root com.me.wifisharingup.plist
sudo launchctl load /Users/me/Library/LaunchAgents/com.me.wifisharingup.plist
Lo script che avvia ogni minuto (non dimenticare di renderlo eseguibile) è:
#!/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
Penso che la semplice chiamata periodica (ogni minuto) per ipconfig getifaddr en1
aggiornare qualcosa in quello che è il demone di condivisione wifi. Qualunque cosa sia, in qualsiasi momento la condivisione del wifi non riesce, perde l'indirizzo IP assegnato automaticamente e quindi ipconfig getifaddr en1
fallisce, quindi il mio script reimposta totalmente il wifi, facendogli ricostruire il suo stato precedente e ripristinare la condivisione del wifi.
Ha funzionato per giorni all'interno di un MacMini senza tastiera, mouse o monitor, ma solo collegato a Ethernet e dando ai miei gadget wifi accesso al mondo.