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 [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
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. =)Jawaban ini hanya berlaku untuk 10.12 Sierra dan lebih rendah.
Detailnya mungkin bermanfaat untuk referensi, tetapi jawaban lain mencakup detail ketepatan waktu macOS yang lebih baru dengan sangat baik.
Langkah pertama adalah melihat apakah waktu Anda sudah diatur.
Dengan asumsi Anda memiliki nilai delay / offset / jitter kurang dari 100 (keterlambatan bisa kurang dari 1000 dalam situasi normal untuk sistem yang kurang akurat-waktu-kritis), perintah berikutnya untuk berjalan di terminal
ntpq
diikuti oleh penghitung waktu darintpq
preferensi Anda dan sistem. Anda juga dapat menguji server waktu lain untuk melihat apakah mereka memiliki penundaan yang lebih rendah karena sistem ketepatan waktu suka memiliki respons yang dekat dan cepat dari server waktu ketika mengoreksi waktu untuk perbedaan milidetik dan menghitung bagaimana jam perangkat keras saat ini bergerak menjauh dari waktu standar. .Hal berikutnya yang perlu diperiksa adalah program alat pacu jantung Anda:
Ini menunjukkan bahwa pada baterai, interval penyesuaian tidak lebih dari sekali setiap 10 detik dan menyesuaikan bahkan lebih sedikit jika kesalahan jam kurang dari 0,1 milidetik.
Jika Anda menemukan bahwa offset Anda adalah detik atau lebih, Anda mungkin ingin mengubah server waktu yang Anda gunakan atau mungkin mengubah nilai yang digunakan pada alat pacu jantung untuk menggunakan lebih banyak energi dan CPU tetapi memiliki jam lebih dekat dengan waktu sebenarnya dalam pertukaran untuk pengaturan yang Apple miliki. dikirim dengan 10.9.
sumber
Jika Anda membuka http://time.gov, Anda dapat melihat waktu resmi (hingga detik) dan menggunakannya untuk memverifikasi apakah waktu sistem Anda benar atau tidak. Perhatikan bahwa ini adalah waktu NIST resmi, dan melakukan sinkronisasi sendiri di browser, terlepas dari waktu sistem (sebagai contoh, Anda dapat melihat di sini bahwa time.gov menangani detik kabisat, sedangkan OS X tampaknya tidak).
sumber
Dimulai dengan High Sierra, daemon sistem ntpd digantikan dengan daemon sistem berjangka waktu yang memanggil / usr / libexec / waktunya.
Eksekutif terbaik yang saya temukan untuk mendapatkan detail adalah
systemsetup
(jalankan sebagai root) dengan berbagai flagnya:Output yang dihasilkan jauh lebih sedikit verbose (= membosankan). Misalnya tidak ada rincian ∂T / drift.
Rupanya waktunya menggunakan hanya satu ntp-server (yang pertama terdaftar - diperiksa dengan WireShark / LittleSnitch) bahkan jika beberapa dimasukkan dalam file preferensi sistem / ntp.conf.
Bacaan lebih lanjut (tidak terlalu teknis): Adakah yang punya waktu? Bagaimana High Sierra mengubah sinkronisasi waktu
Daemon ntpd lawas masih ada tetapi diturunkan. Itu dapat dimuat meskipun dengan memasukkan di Terminal.app:
dalam mode SIP dinonaktifkan. Memasuki
ntpq -p
akan bekerja lagi kalau begitu.Untuk memuat daemon dalam mode aktif SIP, salin file ke / Library / LaunchDaemons /:
Ubah label daftar dengan nano atau editor lain dari org.ntp.ntpd-legacy ke org.ntp.ntpd:
Muat daemon:
Jika saya menemukan eksekutif yang lebih baik untuk mendapatkan rincian waktu dengan daemon High Sierra default, jawabannya akan diperbarui.
sumber
Untuk mendapatkan jawaban yang dapat diandalkan tentang seberapa baik jam Anda disetel, jalankan ntpdate dalam mode debug:
Ini akan berputar untuk sementara waktu dan berakhir pada garis seperti
Dalam hal ini, ini berarti jam lokal saya mati sekitar 810 μs (yang akan spektakuler, jika benar-benar benar, tetapi nilainya jauh di bawah 100 ms tidak menunjukkan sinkronisasi yang berfungsi).
sumber
Untuk memeriksa sinkronisasi jam, mirip dengan jawaban yang menyarankan untuk dijalankan
ntpdate
dalam mode debug, Anda juga dapat menjalankannya dalam mode Query untuk menghasilkan keluaran yang lebih sedikit.Ini dari Mac saya yang menjalankan High Sierra 10.13.2, yang berjalan
timed
daripada daemon NTP (ntpdate
masih berfungsi karena tidak menggunakan daemon NTP).sumber