¿Dónde se guardan los datos de preferencia de fecha y hora en Mac?

5

Necesito verificar mediante programación si Set Date and Time automatically está marcado o no en las Preferencias del Sistema Mac.

No encontré ningún archivo .plist que contuviera esta información, ¿alguien puede decirme dónde puedo encontrar esta información?

    
pregunta Akbar 05.10.2011 - 15:34

3 respuestas

1

El resultado final de la casilla de verificación "Establecer fecha y hora automáticamente" es que el daemon ntpd se inicia con launchd.

Por lo tanto, puede verificar la presencia del archivo /var/run/ntpd.pid o presumiblemente verificar si ntpd se está ejecutando como un proceso. Todo esto está bien y bien para el sitio, pero su segunda parte de la pregunta sobre cómo recuperar este estado mediante programación es básicamente fuera de tema aquí.

Permitimos preguntas limitadas de programación de AppleScript, Automator y shell scripting. El alcance completo de las preguntas del desarrollador (especialmente con las nuevas restricciones de OSX, como el sandboxing) o el nivel de código Q & A sobre cómo programar, se pregunta mejor en enlace en lugar de aquí.

Con eso fuera del camino, aquí está la historia de fondo sobre por qué esta es una pregunta bastante complicada. Launchd es responsable de iniciar y detener el daemon de ntpd cuando se alterna ese interruptor y en lugar de cargar o descargar el archivo de configuración para ese "trabajo", la herramienta en su lugar tiene un archivo interno de plist de reemplazo que tiene un estado verdadero / falso para ciertos trabajos estar deshabilitados aunque normalmente deberían correr. Cuando cambia la casilla de verificación Preferencias del sistema en Fecha & Hora, este archivo cambia el valor de la clave deshabilitada al final del archivo para que esté o cuando el control de tiempo automático esté apagado o activado (respectivamente):

Desde /private/var/db/launchd.db/com.apple.launchd/overrides.plist

    <key>org.ntp.ntpd</key>
    <dict>
            <key>Disabled</key>
            <false/>
    </dict>
    
respondido por el bmike 02.07.2012 - 17:09
1

No conozco una forma puramente programática de obtenerlo, pero el comando systemsetup puede hacerlo:

$ systemsetup -getusingnetworktime
Network Time: On
    
respondido por el Gordon Davisson 04.01.2012 - 05:25
0

Encontré esta discusión sobre los foros de discusión de Apple. Describe cómo obtener el tiempo en la barra de menú, pero también cómo llegar al plist programáticamente.

    
respondido por el Michiel 05.10.2011 - 15:56

Lea otras preguntas en las etiquetas