Notificar al sistema que se cambiaron las preferences

Inhabilité SIP ( ¿Cómo desactivo la Protección de Integridad del Sistema (SIP) AKA "sin raíz" en OS X 10.11, El Capitan? ) Y comencé a editar el file /Library/Preferences/SystemConfiguration/preferences.plist

Edité con éxito las inputs HTTPProxy, HTTPPort, HTTPEnable y guardo el file. Luego verifiqué mi dirección IP en la web, y no cambia. El file está configurado correctamente, pero el sistema no sabe que ha cambiado y, por lo tanto, usa la configuration anterior. Al cambiar la configuration manualmente, al presionar Apply en la pestaña Red se notifica al sistema que preferences.plist ha cambiado y que debe usar la nueva configuration. Lo mismo ocurre con encender y apagar wifi. Cambié el file, verifiqué la IP (es lo mismo) apago / enciendo wifi, revisé el IP y ahora ha cambiado.

¿Cómo puedo activar ese evento de notificación del sistema de cambios programáticamente en una Mac?

Esta es la forma incorrecta de ajustar la configuration de networking en OS X. La networking es administrada por configd, que lee su configuration desde /Library/Preferences/SystemConfiguration/preferences.plist al inicio. Los cambios deben realizarse a través de configd, de modo que pueda actualizar su estado activo, la configuration real de la interfaz de networking y el file de preferences en set.

Conozco tres forms de hacerlo: a través del panel Red en Preferences del sistema, con el command networksetup y con el command scutil . scutil está desorderado, así que no lo recomiendo; afortunadamente networksetup es fácil de usar. Algo como esto debería funcionar:

 sudo networksetup -setwebproxy Ethernet proxyserver.example.com 80 off 

Tenga en count que "Ethernet" es el nombre fácil de usar del service de networking (/ interfaz); use networksetup -listllnetworkservices para una list. Además, el argumento "apagado" significa que la authentication proxy está desactivada. Consulte la página man de networksetup para get más información.

Por cierto, por favor, desactive SIP. No es necesario que lo desactive para cambiar la configuration de networking.

Su pregunta necesita alguna edición y aclaración.

Lo que creo que estás preguntando es cómo forzar a OS X a volver a cargar datos después de editar un file plist. Hay dos methods para hacer esto.

OS X usa un daemon de caching para las preferences, cfprefsd. Simplemente puede save su file plist, luego hacer sudo killall cfprefds . Se reiniciará automáticamente y debería cargar sus cambios.

La forma recomendada de forzar cambios es con el command defaults , que informa al daemon de los cambios. Por ejemplo

 # Reveal IP address, hostname, OS version, etc. when clicking the clock # in the login window sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName