10.14 Mojave
Mojave benutzt noch timed
, aber ntpdate
und die Helfer ntpq
werden entfernt. Um Ihre Systemzeit zu überprüfen und zu aktualisieren, können Sie sntp
direkt anrufen .
$ sudo sntp -sS pool.ntp.org
Password:
sntp 4.2.8p10@1.3728-o 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
Im Auslieferungszustand fehlt eine Tracking-Datei. Wenn Sie also beim Überprüfen der Uhrzeit diesen harmlosen Fehler erhalten:
kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory
Ignoriere den Fehler oder erstelle die leere Datei:
sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod
10.13 Hohe Sierra
High Sierra wird timed
vom /usr/libexec/timed
Systembenutzer ausgeführt _timed
.
timed behält die Genauigkeit der Systemuhr bei, indem die Uhr mit Referenzuhren über Technologien wie NTP synchronisiert wird. Eingaben werden innerhalb von timed zusammengeführt, wobei die Unsicherheit berechnet wird, um die Planung proaktiver Zeitaufträge zu erleichtern. timed ist sich auch des Strom- / Batteriezustands bewusst.
timed wird vom LaunchDaemon verwaltet /System/Library/LaunchDaemons/com.apple.timed.plist
. zeitgesteuerte Läufe…
- wenn der Daemon beim Booten geladen wird (RunAtLoad: true)
- alle 3600 Sekunden (Startintervall: 3600)
- wenn der Flugzeugmodus deaktiviert ist (com.apple.systemconfiguration Flugzeugmodus geändert: com.apple.radios.plist AirplaneMode false, scheint von iOS übernommen zu werden)
Sie können sehen, wie "aus" Ihre Uhr ist, indem Sie den Inhalt von /var/db/timed/com.apple.timed.plist
im TMLastSystemTime-Wörterbuch im TMTimeError-Schlüssel und im TMScaleFactorError-Schlüssel nachsehen.
$ 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";
}
timed verwendet den eingestellten Zeitserver /etc/ntp.conf
, der standardmäßig eingestellt ist
server time.apple.com
timed verwendet auch TMTimeSynthesizer, etwas, mit dem CoreTime unter iOS die Uhr aktualisiert, mir ist jedoch der Verlauf unter macOS nicht bekannt:
Führen Sie die zeitgesteuerte Binärdatei nicht selbst aus, wie in der Manpage beschrieben:
timed benötigt keine Argumente und Benutzer sollten es nicht manuell starten.
Laut dem Apple Developer Forums-Benutzer granada29 im Beitrag ntpd, timed und chronyd in 10.13 , führt timed Folgendes aus:
timed scheint ein einfacher sntp-Client zu sein - dh er fragt das NTP regelmäßig ab (15 Minuten) und verwendet den Systemaufruf settimeofday (), um die Systemuhr einzustellen. Ich nehme an, es ist klug, die Uhr nicht rückwärts zu stellen, aber man kann es nicht sagen.
10.11 El Capitan bis 10.12 Sierra
pacemaker
ist der Daemon, der die Zeit in macOS verwaltet. Es nutzt adjtime
die Uhr pro den Inhalt anzupassen /var/db/ntp.drift
.
Sie können sehen, wie "aus" Ihre Uhr ist, indem Sie den Inhalt von ntp.drift
- zum Beispiel meine Datei enthält Folgendes:
-23.640
Dies bedeutet, dass die Uhr -23,64 PPM von der Zeit entfernt ist, die sie sein sollte. Die Einheiten dieser Zahl sind PPM oder Parts Per Million. 1 PPM ist 1 Mikrosekunde / Sekunde oder 3,6 ms / h.
Sie können die Uhr häufiger aktualisieren , indem Sie pacemaker
die -a
Option ausführen und eine Zeit in Sekunden angeben, die zwischen den Zeitbewegungen gewartet werden soll:
/usr/libexec/pacemaker -a 10
Öffnen Sie, um die von OS X für Schrittmacher verwendeten Parameter anzuzeigen /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" );
}
Führen Sie die folgenden Schritte aus, um Ihre aktuellen Einstellungen zu ermitteln -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
Sie können das Protokoll anzeigen, indem Sie Folgendes -v
ausführen:
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%
sntp
funktionierte aber . Ich frage mich, ob der/var/db/ntp-kod
Fehler Probleme mit der automatischen Synchronisierung verursacht. Ich werde versuchen, ihn zu erstellen und in einigen Monaten erneut nachzuschlagen. =)