Solución definitiva para el uso compartido de wifi que se descompone constantemente en MacosX
He encontrado un sistema que finalmente funciona y cuando, con menos frecuencia, se rompe el uso compartido de wifi, logra recuperarlo automáticamente en un minuto.
La solución es un ~/Library/LaunchAgents/com.me.wifisharingup.plist
demonio con los siguientes contenidos:
<?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>
Puedes ver, cada minuto ejecuta el script simple que sigue. Tenga cuidado de hacer que el plist anterior sea propiedad de la raíz y ejecútelo con:
sudo chown root com.me.wifisharingup.plist
sudo launchctl load /Users/me/Library/LaunchAgents/com.me.wifisharingup.plist
El script que se inicia cada minuto (no olvide hacer que sea ejecutable) es:
#!/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
Creo que la simple llamada periódica (cada minuto) para ipconfig getifaddr en1
actualizar algo en lo que es el demonio para compartir wifi. Sea lo que sea, en cualquier momento el uso compartido de wifi falla, pierde la dirección IP auto asignada y luego ipconfig getifaddr en1
falla, por lo que mi script restablece totalmente el wifi, lo que hace que reconstruya su estado anterior y recupere el uso compartido de wifi.
Ha estado funcionando durante días hasta ahora dentro de un MacMini sin teclado, mouse o monitor, pero solo conectado a Ethernet y dando acceso a mis dispositivos wifi al mundo.