MacosX'te wifi paylaşımının sürekli bozulmasına dair kesin geçici çözüm
Sonunda çalışan bir sistem buldum ve ne zaman, wifi paylaşım payları kırılmıyorsa, bir dakika içinde otomatik olarak kurtarmayı başarabiliyor.
Çözüm, aşağıdaki ~/Library/LaunchAgents/com.me.wifisharingup.plist
içerikleri içeren bir servistir:
<?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>
Görüyorsun, her dakika takip eden basit betiği çalıştırıyor. Önceki pistin köke ait olmasına dikkat edin ve şu şekilde başlayın:
sudo chown root com.me.wifisharingup.plist
sudo launchctl load /Users/me/Library/LaunchAgents/com.me.wifisharingup.plist
Her dakika başlattığı komut dosyası (çalıştırılabilir hale getirmeyi unutmayın):
#!/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
Basitçe periyodik (her dakika) çağrı ipconfig getifaddr en1
wifi paylaşım daemon ne bir şey yenilemek için çağrı düşünüyorum . Her ne olursa olsun, wifi paylaşımı başarısız olduğu her an, kendi kendine atanan IP adresini kaybeder ve ardından ipconfig getifaddr en1
başarısız olur, bu yüzden komut dosyam wifi yeniden başlatır, önceki durumunu yeniden oluşturur ve wifi paylaşımını kurtarır.
Bir MacMini'nin içinde klavye, fare veya monitör olmadan günlerce çalışıyor, ancak yalnızca Ethernet'e bağlı ve wifi aygıtlarıma dünyaya erişim sağlıyor.