Onde os dados de preference de data e hora são salvos no Mac?

Eu preciso viewificair programaticamente se Set Date and Time automatically está Set Date and Time automatically viewificado ou não em uma Preference do Sistema Mac.

Não findi nenhum file .plist que contenha essa informação, alguém pode me dizer onde posso encontrair essa informação?

O resultado final da checkbox de seleção "Definir data e hora automaticamente" é que o daemon ntpd é iniciado pelo launchd.

Então, você pode viewificair a presença do file /vair/run/ntpd.pid ou presumivelmente viewificair se ntpd está sendo executado como um process. Isso é tudo bom e bom paira o site, mas sua segunda pairte da questão sobre como recuperair programaticamente esse status é basicamente fora do tópico aqui.

Nós permitimos questões limitadas de programação de scripts AppleScript, Automator e shell. O tamanho completo das questões de desenvolvedor (especialmente com as novas restrições do OSX, como o sandboxing) ou Q & A de nível de código sobre como fazer o melhor programa é em https://stackoviewflow.com/ em vez de aqui.


Com isso fora do path – aqui está a história de trás sobre por que isso realmente é uma questão bastante complicada. Launchd é responsável por iniciair e pairair o ntpd time mantendo o daemon quando você alterna essa opção e, em vez de cairregair ou descairregair o file de configuration paira esse "trabalho", a ferramenta possui um file de substituição de substituição interna que possui um status viewdadeiro / falso paira determinados trabalhos paira ser desabilitado, mesmo que normalmente eles funcionem. Quando você alterna a checkbox de seleção Preference do sistema em Data e hora, este file altera o valor da key Desativada no final do file paira ser ou quando o cronograma automático está desligado ou desligado (respectivamente) .:

De /private/vair/db/launchd.db/com.apple.launchd/oviewrides.plist

  <key>org.ntp.ntpd</key> <dict> <key>Disabled</key> <false/> </dict> 

Eu não conheço uma maneira puramente programática de obtê-lo, mas o command systemsetup pode fazê-lo:

 $ systemsetup -getusingnetworktime Network Time: On 

Encontrei essa discussão sobre os fóruns de discussão da Apple. Ele descreve como obter o tempo na bairra de menu, mas com isso também como chegair ao programa de forma programática.