10.14 मोजावे
Mojave अभी भी उपयोग करता है timed
, लेकिन ntpdate
और सहायकों ntpq
को हटा दिया जाता है। अपने सिस्टम के समय की जांच और अद्यतन करने के लिए, आप sntp
सीधे कॉल कर सकते हैं।
$ 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
बॉक्स से बाहर, एक ट्रैकिंग फ़ाइल गायब है, इसलिए यदि आपको समय जाँचते समय यह हानिरहित त्रुटि मिलती है:
kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory
या तो त्रुटि को अनदेखा करें या उस खाली फ़ाइल को बनाने का प्रयास करें:
sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod
10.13 हाई सिएरा
उच्च सिएरा का उपयोग करता है timed
से, /usr/libexec/timed
, प्रणाली उपयोगकर्ता द्वारा चलाए _timed
।
समय एनटीपी जैसी प्रौद्योगिकियों के माध्यम से घड़ी को संदर्भ घड़ियों के साथ सिंक्रनाइज़ करके सिस्टम घड़ी की सटीकता को बनाए रखता है। इनपुट को समय के भीतर विलय कर दिया जाता है, जहाँ यह अनिश्चित समय की नौकरियों को सुविधाजनक बनाने के लिए अनिश्चितता की गणना करता है। समय पर बिजली / बैटरी की स्थिति से भी अवगत कराया जाता है।
लॉन्चडेमॉन द्वारा समय का प्रबंधन किया जाता है /System/Library/LaunchDaemons/com.apple.timed.plist
। समय पर रन ...
- जब डेमॉन को बूट पर लोड किया जाता है (रनअटलड: सच)
- हर 3600 सेकंड (StartInterval: 3600)
- जब हवाई जहाज मोड अक्षम हो जाता है (com.apple.systemconfiguration हवाई जहाज मोड परिवर्तित हो जाता है: com.apple.radios.plist AirplaneMode झूठी, जो iOS से चलाया जाता है)
आप /var/db/timed/com.apple.timed.plist
TMMEError कुंजी और TMScaleFactorError कुंजी में TMLastSystemTime डिक्शनरी के तहत, अपनी घड़ी को 'ऑफ' कैसे देख सकते हैं ।
$ 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";
}
समय निर्धारित सर्वर का उपयोग करता है /etc/ntp.conf
, जो डिफ़ॉल्ट रूप से होता है
server time.apple.com
समय भी TMTimeSynthesizer का उपयोग करता है, कुछ जो iOS पर CoreTime का उपयोग घड़ी को अपडेट करने के लिए करता है, लेकिन मैं macOS पर इसके इतिहास से अनजान हूँ:
मैन पेज में बताए अनुसार, समयबद्ध बाइनरी को स्वयं न चलाएं:
समय कोई तर्क नहीं लेता है, और उपयोगकर्ताओं को इसे मैन्युअल रूप से लॉन्च नहीं करना चाहिए।
10.13 के बाद ntpd में Apple डेवलपर फ़ोरम उपयोगकर्ता के लिए granada29 के अनुसार , समय सारिणी और कालक्रम में , निम्नलिखित कार्य करता है:
समय सारिणी एक सामान्य sntp क्लाइंट प्रतीत होती है - अर्थात यह समय-समय पर (15 मिनट) NTP को प्रदूषित करता है और sytem घड़ी को सेट करने के लिए setimeofday () सिस्टम कॉल का उपयोग करता है। मैं मानता हूं कि घड़ी को पीछे की ओर ले जाने से बचने के लिए कुछ चतुराई है लेकिन यह बताने का कोई तरीका नहीं है।
10.11 एल कैपिटन से 10.12 सिएरा
pacemaker
MacOS में समय के प्रबंधन के लिए डेमन जिम्मेदार है। यह adjtime
सामग्री के अनुसार घड़ी को समायोजित करने के लिए उपयोग करता है /var/db/ntp.drift
।
आप देख सकते हैं कि आपकी सामग्री किस तरह से 'बंद' है ntp.drift
- उदाहरण के लिए, मेरी फ़ाइल में निम्नलिखित शामिल हैं:
-23.640
इसका मतलब यह है कि घड़ी -23.64 पीपीएम उस समय से दूर है जब यह होना चाहिए। इस संख्या की इकाइयाँ PPM या पार्ट्स प्रति मिलियन है। 1 पीपीएम 1 माइक्रोसेकंड / सेकंड, या 3.6 सेमी / घंटा है।
आप विकल्प के pacemaker
साथ चलकर घड़ी को अधिक बार अपडेट कर सकते हैं -a
, सेकंड में एक समय प्रदान करते हुए समय की गति के बीच प्रतीक्षा कर सकते हैं:
/usr/libexec/pacemaker -a 10
पेसमेकर के लिए OS X द्वारा उपयोग किए जा रहे मापदंडों को देखने के लिए, खोलें /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" );
}
अपनी वर्तमान सेटिंग खोजने के लिए, -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
आप -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%
sntp
काम किया। मुझे आश्चर्य है कि अगर/var/db/ntp-kod
त्रुटि स्वचालित सिंक के साथ समस्या पैदा कर रही है - इसे बनाने और कुछ महीनों में वापस जांचने की कोशिश करेंगे। =)