Wyłączyłem SIP ( Jak wyłączyć ochronę integralności systemu (SIP) AKA „bez roota” w systemie OS X 10.11, El Capitan? ) i rozpoczął edycję pliku /Library/Preferences/SystemConfiguration/preferences.plist
Udało mi się edytować wpisy HTTPProxy, HTTPPort, HTTPEnable i zapisać plik. Następnie sprawdziłem mój adres IP w sieci i to się nie zmienia. Plik jest ustawiony poprawnie, ale system nie wie, że się zmienił i dlatego używa starych ustawień. Podczas ręcznej zmiany ustawień, uderzanie Apply
w zakładce Sieć powiadamia system, który zmienił preferences.plist i musi korzystać z nowych ustawień. To samo dotyczy włączania i wyłączania wifi. Zmieniłem plik, sprawdziłem adres IP (jest taki sam) wyłącz / włącz wifi, sprawdź adres IP i teraz się zmienił.
Jak mogę wywołać to zdarzenie programowo powiadamiając system zmian na komputerze Mac?
źródło
Odpowiedzi:
Jest to zły sposób na dostosowanie ustawień sieciowych w OS X. Sieć jest zarządzana przez configd, który odczytuje ustawienia z /Library/Preferences/SystemConfiguration/preferences.plist podczas uruchamiania. Zmiany należy wprowadzać za pomocą configd, aby zaktualizować swój stan na żywo, rzeczywiste ustawienia interfejsu sieciowego i plik preferencji.
Znam trzy sposoby, aby to zrobić: za pomocą panelu Sieć w Preferencjach systemowych za pomocą
networksetup
polecenie i za pomocąscutil
dowództwo.scutil
jest brudny, więc go nie polecam; na szczęścienetworksetup
jest łatwy w użyciu. Coś takiego powinno działać:Należy zauważyć, że „Ethernet” jest przyjazną dla użytkownika nazwą usługi sieciowej (/ interfejsu); posługiwać się
networksetup -listallnetworkservices
dla listy. Ponadto argument „off” oznacza, że uwierzytelnianie proxy jest wyłączone. Zobacznetworksetup
strona man po więcej informacji.BTW, proszę wyłączyć SIP. Nie musisz go wyłączać, aby zmienić ustawienia sieciowe.
źródło
Twoje pytanie wymaga edycji i wyjaśnienia.
Myślę, że pytasz, jak zmusić OS X do ponownego załadowania danych po edycji pliku plist. Są na to dwie metody.
OS X używa demona buforującego dla preferencji, cfprefsd. Możesz po prostu zapisać plik plist, a następnie zrobić
sudo killall cfprefds
. Zostanie automatycznie uruchomiony ponownie i powinien załadować zmiany.Zalecanym sposobem wymuszania zmian jest użycie polecenie domyślne , który informuje demona o zmianach. Na przykład
źródło