Dove sono salvati i dati sulle preferenze di data e ora su Mac?

5

Devo controllare a livello di codice se Set Date and Time automatically è spuntato o meno su un Preferenze di Sistema Mac.

Non ho trovato alcun file .plist che contenesse questa informazione, qualcuno può dirmi dove posso trovare queste informazioni?

    
posta Akbar 05.10.2011 - 15:34
fonte

3 risposte

1

Il risultato finale della casella di controllo "Imposta data e ora automaticamente" è che il daemon ntpd viene avviato da launchd.

Quindi è possibile verificare la presenza del file /var/run/ntpd.pid o presumibilmente controllare se ntpd è in esecuzione come processo. Tutto questo va bene e va bene per il sito, ma la tua seconda parte alla domanda su come recuperare questo stato in modo programmatico è fondamentalmente off-topic qui.

Sono consentite domande limitate di programmazione di scripting AppleScript, Automator e shell. L'ambito completo delle domande degli sviluppatori (in particolare con le nuove restrizioni OSX come il sandboxing) o il codice a livello di Q & A su come programmare è meglio chiedere su link piuttosto che qui.

Con quello fuori mano - ecco la storia sul perché questa è una domanda abbastanza complicata. Launchd è responsabile dell'avvio e dell'arresto del daemon ntpd time keeping quando si commuta tale opzione e invece di caricare o scaricare il file di configurazione per quel "lavoro", lo strumento ha invece un file plist override interno che ha uno stato vero / falso per determinati lavori essere disabilitato anche se normalmente dovrebbero essere eseguiti. Quando si attiva la casella di controllo Preferenze di sistema in Data e amp; Ora, questo file cambia il valore della chiave disabilitata alla fine del file o quando l'indicazione dell'ora automatica è disattivata o attivata (rispettivamente).:

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

    <key>org.ntp.ntpd</key>
    <dict>
            <key>Disabled</key>
            <false/>
    </dict>
    
risposta data 02.07.2012 - 17:09
fonte
1

Non conosco un modo puramente programmatico per ottenerlo, ma il comando systemsetup può farlo:

$ systemsetup -getusingnetworktime
Network Time: On
    
risposta data 04.01.2012 - 05:25
fonte
0

Ho trovato questa discussione sui forum di discussione di Apple. Descrive come ottenere il tempo nella barra dei menu, ma con esso anche come arrivare al plist in modo programmatico.

    
risposta data 05.10.2011 - 15:56
fonte

Leggi altre domande sui tag