10.14 Mojave
Mojave masih menggunakan timed
, tetapi ntpdate
dan pembantu ntpq
dihapus. Untuk memeriksa dan memperbarui waktu sistem Anda, Anda dapat menelepon sntp
langsung.
$ 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
Di luar kotak, file pelacakan tidak ada, jadi jika Anda mendapatkan kesalahan yang tidak berbahaya saat memeriksa waktu:
kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory
abaikan kesalahan atau coba buat file kosong itu:
sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod
10.13 Sierra Tinggi
Sierra tinggi menggunakan timed
, dari /usr/libexec/timed
, dijalankan oleh pengguna sistem _timed
.
timed menjaga akurasi jam sistem dengan menyinkronkan jam dengan jam referensi melalui teknologi seperti NTP. Input digabungkan dalam timed, di mana menghitung ketidakpastian untuk memfasilitasi penjadwalan pekerjaan waktu proaktif. waktunya juga mengetahui kondisi daya / baterai.
waktunya diatur oleh LaunchDaemon /System/Library/LaunchDaemons/com.apple.timed.plist
. berjalan waktunya ...
- ketika daemon dimuat saat boot (RunAtLoad: true)
- setiap 3600 detik (StartInterval: 3600)
- ketika Mode Pesawat dinonaktifkan (com.apple.systemconfiguration mode pesawat berubah: com.apple.radios.plist AirplaneMode false, yang tampaknya dibawa dari iOS)
Anda dapat melihat bagaimana 'mematikan' jam Anda dengan melihat isi /var/db/timed/com.apple.timed.plist
, di bawah kamus TMLastSystemTime di kunci TMTimeError dan kunci 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";
}
waktunya menggunakan server waktu yang disetel /etc/ntp.conf
, yang secara default adalah
server time.apple.com
waktunya juga menggunakan TMTimeSynthesizer, sesuatu yang menggunakan CoreTime di iOS untuk memperbarui jam dengan tetapi saya tidak mengetahui sejarahnya di macOS:
Jangan jalankan biner waktunya sendiri, seperti yang disebutkan di halaman manual:
waktunya tidak memerlukan argumen, dan pengguna tidak harus meluncurkannya secara manual.
Menurut granada29 pengguna Forum Pengembang Apple di posting ntpd, waktunya dan chronyd di 10.13 , waktunya melakukan yang berikut:
waktunya tampaknya menjadi klien sntp sederhana - yaitu, polling NTP secara berkala (15 menit) dan menggunakan panggilan system settimeofday () untuk mengatur jam sistem. Saya menganggap itu memiliki kepintaran untuk menghindari melangkah mundur, tetapi tidak ada cara untuk mengatakannya.
10.11 El Capitan hingga 10.12 Sierra
pacemaker
adalah daemon yang bertanggung jawab untuk mengatur waktu di macOS. Ini digunakan adjtime
untuk menyesuaikan jam per konten /var/db/ntp.drift
.
Anda dapat melihat bagaimana 'mematikan' jam Anda dengan melihat konten ntp.drift
- misalnya, file saya berisi yang berikut ini:
-23.640
Ini berarti bahwa jam -23.64 PPM jauh dari waktu yang seharusnya. Unit-unit dari nomor ini adalah PPM, atau Parts Per Million. 1 PPM adalah 1 mikrodetik / detik, atau 3,6 ms / jam.
Anda dapat membuat pembaruan jam lebih sering dengan menjalankan pacemaker
dengan -a
opsi, menyediakan waktu dalam detik untuk menunggu di antara pergerakan waktu:
/usr/libexec/pacemaker -a 10
Untuk melihat parameter yang digunakan oleh OS X untuk alat pacu jantung, buka /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" );
}
Untuk menemukan pengaturan Anda saat ini, jalankan dengan -i
opsi:
/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
Anda dapat menampilkan log dengan menjalankan dengan -v
opsi:
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
berfungsi. Saya ingin tahu apakah/var/db/ntp-kod
kesalahan tersebut menyebabkan masalah dengan sinkronisasi otomatis - akan mencoba membuatnya dan memeriksa kembali dalam beberapa bulan. =)