10.14 Mojave
Mojave usa ancora timed
, ma ntpdate
è stato rimosso. Per controllare e aggiornare l'orario di sistema, puoi chiamare sntp
direttamente.
$ sudo sntp -sS pool.ntp.org
Password:
sntp [email protected] Tue Mar 21 14:36:42 UTC 2017 (136.200.1~2533)
2018-09-29 19:42:41.448103 (-0200) +1087.742403 +/- 725.183462 pool.ntp.org 188.68.36.203 s2 no-leap
Se ricevi questo errore:
kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory
Prova:
sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod
10.13 High Sierra
High Sierra utilizza timed
, da /usr/libexec/timed
, eseguito dall'utente di sistema _timed
.
timed maintains system clock accuracy by synchronizing the clock with reference clocks via technologies like NTP. Inputs are merged inside of timed, where it calculates uncertainty to facilitate scheduling proactive time jobs. timed is also aware of power/battery conditions.
timed è gestito da LaunchDaemon /System/Library/LaunchDaemons/com.apple.timed.plist
. corse a tempo ...
- quando il daemon viene caricato all'avvio (RunAtLoad: true)
- ogni 3600 secondi (StartInterval: 3600)
- quando la Modalità aereo è disabilitata (modalità aereo com.apple.systemconfiguration modificata: com.apple.radios.plist AirplaneMode false, che sembra essere trasferita da iOS)
Puoi vedere quanto è spento il tuo orologio guardando il contenuto di /var/db/timed/com.apple.timed.plist
, nel dizionario TMLastSystemTime nella chiave TMTimeError e nella chiave TMScaleFactorError.
$ sudo defaults read /var/db/timed/com.apple.timed TMLastSystemTime
{
TMCurrentTime = "537303485.281592";
TMReliability = 1;
TMRtcTime = "351422.381868388";
TMScaleFactor = "0.9999958233107684";
TMScaleFactorError = "3.468751755688052e-05";
TMSource = TMTimeSynthesizer;
TMTimeError = "0.6127951619022057";
}
cronometrato usa il time server impostato in /etc/ntp.conf
, che di default è
server time.apple.com
timed usa anche TMTimeSynthesizer, qualcosa che CoreTime su iOS usa per aggiornare l'orologio ma non conosco la sua cronologia su macOS:
Non eseguire il binario a tempo, come indicato nella pagina man:
timed takes no arguments, and users should not launch it manually.
Secondo granada29 utente Forum degli sviluppatori Apple nel post ntpd, cronometrato e chronyd in 10.13 , cronometrato esegue il seguenti:
timed appears to be a simple sntp client - i.e. it polls the NTP periodically (15 minutes) and uses the settimeofday() system call to set the sytem clock. I assume it has some cleverness to avoid stepping the clock backwards but there is no way to tell.
10.11 El Capitan a 10.12 Sierra
pacemaker
è il daemon responsabile della gestione del tempo in macOS. Usa adjtime
per regolare l'orologio per il contenuto di /var/db/ntp.drift
.
Puoi vedere come "spegni" il tuo orologio osservando il contenuto di ntp.drift
- ad esempio, il mio file contiene quanto segue:
-23.640
Ciò significa che l'orologio è -23,64 PPM lontano dal tempo che dovrebbe essere. Le unità di questo numero sono PPM o Parti per milione. 1 PPM è 1 microsecondo / secondo o 3,6 ms / h.
Puoi aggiornare più spesso l'orologio eseguendo pacemaker
con l'opzione -a
, fornendo un tempo in secondi di attesa tra i movimenti temporali:
/usr/libexec/pacemaker -a 10
Per visualizzare i parametri utilizzati da OS X per il pacemaker, apri /System/Library/LaunchDaemons/com.apple.pacemaker.plist
.
{
KeepAlive = { PathState = { "/private/var/db/ntp.drift" = :true; }; };
Label = "com.apple.pacemaker";
ProgramArguments = ( "/usr/libexec/pacemaker", "-b", "-e", "0.0001", "-a", "10" );
}
Per trovare le tue impostazioni correnti, esegui con l'opzione -i
:
/usr/libexec/pacemaker -i
Jan 19 18:20:08 g pacemaker[12544] <Info>: --- settings for external power ---
Jan 19 18:20:08 g pacemaker[12544] <Info>: interval = 1 seconds, tolerance = 0.000000, drift = -23.640000
Jan 19 18:20:08 g pacemaker[12544] <Info>: --- settings for internal power ---
Jan 19 18:20:08 g pacemaker[12544] <Info>: interval = 1 seconds, tolerance = 0.000024, drift = -23.640000
Puoi mostrare il registro eseguendo con l'opzione -v
:
sudo /usr/libexec/pacemaker -v
Password:
Jan 19 18:23:17 g pacemaker[13202] <Info>: power status check: using external power
Jan 19 18:23:17 g pacemaker[13202] <Info>: created file monitor for /var/db/ntp.drift
Jan 19 18:23:17 g pacemaker[13202] <Info>: interval = 1 seconds, tolerance = 0.000000, drift = -23.640000
Jan 19 18:23:19 g pacemaker[13202] <Debug>: drift -23.640000 residue 0.000000 delta -23
Jan 19 18:23:20 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.640000 delta -24
Jan 19 18:23:21 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.280000 delta -23
Jan 19 18:23:22 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.920000 delta -24
Jan 19 18:23:23 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.560000 delta -24
Jan 19 18:23:24 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.200000 delta -23
⌃C%