10.14 Mojave
Mojave hala kullanıyor timed
, ancak ntpdate
yardımcılar ntpq
kaldırılıyor. Sistem saatinizi kontrol etmek ve güncellemek için sntp
doğrudan arayabilirsiniz .
$ 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
Kutunun dışında, bir izleme dosyası eksik, bu yüzden zaman kontrol ederken bu zararsız hatayı alırsanız:
kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory
hatayı yoksayın veya bu boş dosyayı oluşturmayı deneyin:
sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod
10.13 Yüksek Sierra
High Sierra kullanır timed
dan, /usr/libexec/timed
sistem kullanıcı tarafından çalıştırılan, _timed
.
Timed, saati NTP gibi teknolojilerle referans saatler ile senkronize ederek sistem saati doğruluğunu korur. Girdiler, proaktif zaman işlerinin programlanmasını kolaylaştırmak için belirsizliği hesapladığı zaman içerisinde birleştirilir. Zamanlı da güç / pil koşullarının farkında.
zamanlanmış LaunchDaemon tarafından yönetilmektedir /System/Library/LaunchDaemons/com.apple.timed.plist
. zamanlı koşular…
- arka plan açılışında yüklendiğinde (RunAtLoad: true)
- her 3600 saniyede bir (StartInterval: 3600)
- Uçak Modu devre dışı bırakıldığında (com.apple.systemconfiguration uçak modu değişti: com.apple.radios.plist iOS'tan taşınıyor gibi görünen AirplaneMode false)
/var/db/timed/com.apple.timed.plist
Saatinizin ne kadar kapalı olduğunu TMTimeError ve TMScaleFactorError anahtarlarındaki TMLastSystemTime sözlüğünün içeriğine bakarak görebilirsiniz.
$ 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";
}
zamanlamalı, /etc/ntp.conf
varsayılan olarak ayarlanan zaman sunucusunu kullanır.
server time.apple.com
timed ayrıca iOS'ta CoreTime'ın saati güncellemek için kullandığı bir şey olan TMTimeSynthesizer'ı kullanıyor, ancak macOS'taki geçmişinin farkında değilim:
Zamanlanmış ikili dosyayı kendiniz çalıştırmayın, man sayfasında belirtildiği gibi:
zaman aşımı hiçbir argüman almaz ve kullanıcılar manuel olarak başlatmamalıdır.
Apple Developer Forums kullanıcısına göre, granada29 yazısında ntpd, timed ve chronyd 10.13'te, timed aşağıdakileri gerçekleştirir:
zamanlanmış basit bir sntp istemcisi gibi görünmektedir - yani NTP'yi düzenli aralıklarla (15 dakika) sorgular ve sistem saatini ayarlamak için settimeofday () sistem çağrısını kullanır. Saatin geriye doğru adım atmamak için biraz zekalı olduğunu varsayıyorum ama söylemenin bir yolu yok.
10.11 El Capitan'dan 10.12 Sierra
pacemaker
macOS'ta zamanın yönetiminden sorumlu olan servistir. adjtime
İçeriği başına saati ayarlamak için kullanır /var/db/ntp.drift
.
İçeriğinize bakarak saatinizin ne kadar kapalı olduğunu görebilirsiniz ntp.drift
- örneğin, dosyam şunları içeriyor:
-23.640
Bu, saatin -23.64 PPM olması gerektiği zamandan uzakta olduğu anlamına gelir. Bu sayının birimleri PPM veya Milyon Başına Parçadır. 1 PPM, 1 mikrosaniye / saniye veya 3,6 ms / s'dir.
Bu seçenekle pacemaker
çalışarak saatin daha sık güncellenmesini sağlayabilirsiniz, -a
zaman hareketleri arasında beklemek için saniye cinsinden bir zaman sağlar:
/usr/libexec/pacemaker -a 10
Kalp pili için OS X tarafından kullanılan parametreleri görmek için açın /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" );
}
Mevcut ayarlarınızı bulmak için şu -i
seçenekle çalıştırın :
/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
-v
Seçeneği çalıştırarak günlüğü gösterebilirsiniz :
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
çalıştı./var/db/ntp-kod
Hatanın otomatik senkronizasyonda sorunlara yol açıp açmadığını merak ediyorum - bir kaç ay içinde yeniden yaratmayı deneyip tekrar deneyiniz. =)