Jak mogę zsynchronizować zegar systemowy w Mavericks?

22

Mam iMaca z 27-calowym wyświetlaczem w połowie 2011 r. I działającego na Mavericks (10.9.1). Zaktualizowałem Fall Mountain, kiedy Mavericks został wydany. Nigdy wcześniej nie miałem żadnych problemów z zegarem systemowym.

Od czasu instalacji Mavericks mój zegar konsekwentnie zyskuje około 20 sekund dziennie. Mam poprawnie ustawioną strefę czasową, a „Ustaw datę i godzinę automatycznie” jest zaznaczona w mojej Dacie i Preferencje systemu czasu. Jest ustawiony na używanie „Apple / Americas / U.S. (Time.apple.com)”

Kiedy otwieram Date & amp; Panel Preferencje systemowe Czasu mój zegar jest natychmiast dostosowywany do prawidłowego czasu, ale bez otwierania okienka dość szybko znika.

Uruchomiłem ponownie, zaznaczyłem i odznaczyłem pole, aby automatycznie ustawić datę i godzinę, a żadna z nich nie pomogła.

Jakieś rozwiązania lub pomysły?


AKTUALIZACJA:

Zrobiłem to, co wydaje mi się postępem. Pytanie: Jak mogę sprawdzić, czy mój Mac poprawnie aktualizuje zegar? a zaakceptowana przez grgarside odpowiedź dostarczyła wielu pomocnych w rozwiązywaniu problemów. Mój dryf to aż 499,988 (zyskuje 43,19 sekundy dziennie)!

Co najważniejsze, stymulator działa co 5–15 sekund, o czym świadczy mój dziennik macierzysty, jednak przy każdym uruchomieniu pojawia się błąd:

Feb  1 11:53:29 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:53:39 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:53:51 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:53:59 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:54:09 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:54:19 jsw.local pacemaker[19928]: adjtime: Operation not permitted

Wygląda na to, że mam problem z zezwoleniem, ale nie mogę tego zrozumieć. Rozładowałem i ponownie załadowałem plsit stymulatora poprzez launchctl

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.pacemaker.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.pacemaker.plist

tutaj jest eksport tekstu mojego com.apple.pacemaker.plist

{
    Label = "com.apple.pacemaker";
    ProgramArguments = (
        "/usr/libexec/pacemaker",
        "-b",
        "-e",
        "0.0001",
        "-a",
        10,
    );
    KeepAlive = {
        PathState = {
            "/private/var/db/ntp.drift" = YES;
        };
    };
}

mój /private/var/db/ntp.drift plik jest własnością root: wheel, a jego uprawnienia to 644, /System/Library/LaunchDaemons/com.apple.pacemaker.plist ma dokładnie takie same prawa własności i uprawnienia.

Mam nadzieję, że ta aktualizacja dostarczy wystarczającej ilości dodatkowych informacji, aby ktoś mógł mnie pozbyć tego problemu.

Scott
źródło
2
Nigdy nie zdarzyło mi się, żeby system działał tak, jak opisujesz, ale inna osoba tutaj potrzebowała wybierz inny serwer czasu (Azja, jeśli obecnie używasz US), a następnie przełącz się ponownie aby nakleić ustawienie.
bmike
Zgaduję, że coś jest nie tak z twoim DNS lub hostfile. Czy w jakiś sposób zmodyfikowałeś ustawienia sieci i preferencje? Nie tylko poniżej 10.9, ale 10.8? Spróbowałbym zmienić z time.apple.com na jeden z pool.ntp.org/en adresy URL.
Andrew U.
1
@AndrewU. Twój komentarz nie uwzględnia faktu, że czas najwyraźniej synchronizuje się prawidłowo, gdy otwieram okienko pref
Scott
1
@bmike Próbuję tego, po prostu nie wróciłem do tego komputera iMac, żeby to sprawdzić. Dzięki, Scott
Scott
1
Mam ten sam problem - zegar dryfuje o minuty na tydzień, ale natychmiast synchronizuje się prawidłowo, gdy otwieram panel preferencji zegara. Zauważyłem, że błąd „adjtime: Operacja niedozwolona” może zostać wyeliminowany, ponieważ uruchamiasz pacemaker w linii poleceń za pomocą sudo: sudo / usr / libexec / pacemaker -v Ale to nie jest rozwiązanie, może tylko wskazówka, co może być źle za kulisami.
Brian Stormont

Odpowiedzi:

22

te wydaje się działać dobrze na moim komputerze iMac, z systemem Mountain Lion:

0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org time.apple.com

po prostu skopiuj / wklej oddzieloną spacją linię powyżej do pola „Ustaw datę i godzinę automatycznie” w polu Data i amp; Preferencje czasowe. pamiętaj, aby nacisnąć Enter po wpisaniu nazw serwerów ntp, dzięki czemu ntp.conf zostanie zaktualizowany.

user1082
źródło
Nie rozumiem, dlaczego to zadziałało, ale zadziałało!
Scott
W Yosemite stało się to rozwijane, które wydaje się nie lubić edytować (nawet jeśli wygląda trochę tak, jakbyś mógł je edytować ...)
RedYeti
Nadal możesz edytować w Yosemite (właśnie to zrobiłem!). Jeśli wybierzesz listę rozwijaną i naciśniesz klawisz Delete, zobaczysz zniknięcie tekstu. Nie można użyć polecenia cmd + v do wklejenia, ale dodatkowe kliknięcie daje opcję wklejania w menu.
Ryan Dlugosz
3

Ntpd Maverisksa jest uszkodzony, zniszczony, uszkodzony. Apple wie o tym: spędziłem z nimi wiele godzin, dostarczając im mnóstwo próbek i plików. Może to być przeniesienie z iOS („Back to the Mac”, niezależnie od tego, czy faktycznie działa). Sprawcą wydaje się być nowy z demonem Maverisk zwanym „pacemaker”, który w klasycznym stylu Apple jest niedostatecznie udokumentowany i nie wydaje się, aby zachowywał się zgodnie z małą dokumentacją.

outer
źródło
Tu jest długa dyskusja na ten temat: discussions.apple.com/thread/5604114
shrx
2

Przed wykonaniem nowej instalacji zdecydowanie zalecam zresetowanie pamięci NVRAM (nieulotnej pamięci RAM).

NVRAM (lub PRAM na starszych komputerach Mac z procesorem PowerPC) przechowuje pewne ustawienia. Jest to rodzaj pamięci, takiej jak zwykła pamięć RAM w komputerze Mac, ale jedną z głównych różnic jest to, że pamięć NVRAM przechowuje to, co jest na niej, nawet jeśli komputer Mac zostanie wyłączony.

W szczególności informacje przechowywane w NVRAM / PRAM obejmują:

  • Głośność głośnika
  • Ustawienia strefy czasowej
  • Rozdzielczość ekranu
  • Wybór dysku startowego
  • Ostatnia panika jądra, jeśli istnieje

Prawdopodobnie to, co jest przechowywane w pamięci NVRAM o twoim czasie, zostało jakoś uszkodzone i teraz powoduje twój problem.

Teraz możesz zapytać, co z synchronizacją czasu z serwerami? Po co mi to jest? Cóż, to tylko ustawienie czasu, a nie ręczne. Tylko mały gest; nic więcej. Po ustawieniu jest przechowywany w pamięci NVRAM jak zwykle.

Twój czas zostanie skorygowany za każdym razem, gdy otworzysz swoją Datę i amp; Preferencje czasowe, ponieważ prawdopodobnie otwarcie tam rozpoczyna ręczną synchronizację czasu z serwerem. Ale po tym wszystko znów się psuje.

W każdym razie, aby zresetować pamięć NVRAM:

  • Wyłącz komputer Mac.
  • Znajdź następujące klawisze na klawiaturze: Polecenie (⌘) , Opcja , P , i R . Musisz przytrzymać te klawisze jednocześnie w kroku 4.
  • Włącz komputer.
  • Naciśnij i przytrzymaj klawisze Command-Option-P-R, zanim pojawi się szary ekran.
  • Przytrzymaj klawisze do momentu ponownego uruchomienia komputera i usłyszysz dźwięk uruchamiania po raz drugi.
  • Zwolnij klawisze.

Źródło: jabłko

Can Sürmeli
źródło
1
Mogłem zobaczyć, jak zresetowanie NVRAM usuwa niepoprawną strefę czasową, ale jeśli ma to wpływ na pomiar czasu i zdolność ntpd do utrzymywania zegara z dala od źródeł internetowych - istnieje wiele brakujących ogniw między tym, co jest przechowywane w NVRAM, a tym, jak czas jest ustawiany. Zwłaszcza, że ​​system wyłącza się i koryguje podczas pracy, otwierając okienko preferencji systemowych. Myślisz, że w czasie rozruchu może być źle?
bmike
2

Możesz ntpdate przez launchd.

Złożyłem kawałki razem https://github.com/tjluoma/ntp-fix-time ale tutaj uwzględnię odpowiednie bity:

  1. ZA launchd plist, który przechodzi do / Library / LaunchDaemons / (ponieważ musi być uruchomiony jako root kiedy biegnie)

  2. Skrypt powłoki, który wywołuje ntpdate -u $NTPHOST i rejestruje swoje wyjście.

Z jakiegoś powodu próbuję zadzwonić ntpdate bezpośrednio przez launchd nie działało dla mnie, ale wywołanie go przez skrypt wydawało się działać.

The plist używa tego:

    <key>RunAtLoad</key>
    <true/>

aby upewnić się, że działa po ponownym uruchomieniu komputera Mac.

To:

    <key>StartInterval</key>
    <integer>14400</integer>

upewnia się, że działa co 4 godziny, co wydawało się „wystarczająco często”.

Skrypt użyje serwerów wymienionych w /etc/ntp.conf, chyba że nie ma żadnych, w którym to przypadku użyje time.apple.com.

(The man strona dla ntpdate sugeruje, że w końcu zostanie „wycofany” z Mac OS X, ale nadal jest dostępny w wersji 10.9.1, więc to mi wystarczy.)

TJ Luoma
źródło
Wygląda na to, że zadziała - chociaż jestem zdziwiony, dlaczego jest to konieczne i czy są inne problemy systemowe, których nie znam.
Scott
1
FYI - nie jestem fanem polegania na zmiennej PATH w LaunchDaemons lub zadaniach cron. Spalono mnie zbyt wiele razy, myślę, że o wiele lepszą praktyką jest wykorzystanie pełnej ścieżki. W przypadku LaunchDaemons możesz określić WorkingDirectory, który, jeśli zostanie użyty, usunie potrzebę podania pełnej ścieżki.
Scott
1

Dotychczas nie udało mi się wyeliminować przesunięcia zegara. Ponieważ mój zegar dryfuje powoli (mniej niż minutę dziennie) Trochę czasu zajmuje sprawdzenie, czy próba rozwiązania działa.

Właśnie wypróbowałem odmianę odpowiedzi Patrix z ten post . Echo nie działało w wierszu poleceń, dostałem „odmowę zezwolenia” (jego odpowiedź odnosiła się do instalacji Lion). Ale usunąłem stary plik i zastąpiłem go nowym, który edytowałem za pomocą nano.

sudo rm /etc/ntp.conf
sudo touch /etc/ntp.conf
sudo nano /etc/ntp.conf

w pliku, który po prostu umieściłem

server time.apple.com

bez spływu. lub nowa linia. Następnie opuściłem nano (ctrl-X) i odpowiedziałem twierdząco na zapisywanie zmian.

Nie musiałem zmieniać właścicieli, ponieważ był już własnością root: wheel.

Zaktualizuję, gdy wiem, czy to zadziałało.

Scott
źródło
1
To nie zadziałało
Scott
2
Dlaczego go dotykasz, zanim go zmienisz?
Max Ried
0

Chciałem przedstawić moje dwa grosze na ten problem. Miałem podobny problem. Mój zegar byłby za godzinę, a to, co dla mnie działało, to automatyczne odznaczenie Ustaw strefę czasową przy użyciu bieżącej lokalizacji i ręczne wybranie najbliższego miasta. Nie zaszkodzi spróbować i sprawdzić, czy to robi różnicę.

lovesimac
źródło
0

Jak już dyskutowano w innym miejscu, dryft zegara jest spowodowany tym, że ntpd nie działa i coś o nazwie / usr / libexec / pacemaker też nie działa poprawnie. Wyłączenie stymulatora i uruchomienie ntpdate w celu wyłączenia zegara spowodowało, że zegar w moim systemie stał się dość stabilny, przy minimalnych zmianach w systemie.

Z Terminalu uruchom te polecenia w kolejności.

cd /System/Library/LaunchDaemons/
mv com.apple.pacemaker.plist com.apple.pacemaker.plist.OFF
sudo crontab -l > /tmp/foo
echo '*/5 * * * * /usr/sbin/ntpdate -s -B -u time.apple.com' >> /tmp/foo
sudo crontab /tmp/foo

Następnie uruchom ponownie system.

Pierwsze dwa polecenia wyłączają stymulator, przesuwając plik konfiguracyjny launchd z drogi. Ostatnie trzy polecenia mówią systemowemu demonowi cron, aby uruchamiał ntpdate co pięć minut, spowalniając lub przyspieszając zegar w razie potrzeby, i rejestrując to, co robi w /var/log/system.log.

Kyle Jones
źródło
-2

Jeśli zadzwonisz do Apple, zasugerują, abyś ponownie zainstalował system operacyjny.

Domyślam się, że masz uszkodzoną preferencję. Możesz spróbować zmienić każde ustawienie w panelu preferencji Data i godzina na coś innego, ponownie uruchomić komputer, a następnie ustawić to, co chcesz. Jeśli to nie zadziała, przejdź do katalogu Preferencje i usuń wszystko, co ma związek z preferencjami Data i godzina.

vy32
źródło
Ponownie zainstalować? HORRORY! Dlatego opuściłem Windows wiele lat temu. Z pewnością rozsądni, inteligentni ludzie mogą znaleźć lepsze rozwiązanie niż ponowna instalacja systemu operacyjnego.
Scott
A jeśli chodzi o przejście do opcji Preferencje i usunięcie plistów związanych z datą i godziną. Uważam to zalecenie za niekompletne i niebezpieczne. Jeśli to poważnie, powinieneś A) podać lokalizację folderu. I B) radzi użytkownikowi przenieść pliki gdzie indziej (być może na pulpicie) zamiast ich usuwania. Wiele osób z różnych poziomów doświadczenia przeczyta to pytanie.
Scott
Rozumiem, że ostatnio nie zadzwoniłeś do wsparcia technicznego Apple. Ponowna instalacja OSX to dość bezbolesna operacja. Wszystkie Twoje aplikacje pozostają zainstalowane, wszyscy twoi użytkownicy pozostają obecni.
vy32
Wczoraj nazywał się Apple. 3 godziny przez telefon. Następnie 4-godzinna ponowna instalacja systemu operacyjnego (przez szybki internet na dysk SSD). Następnie 2 godziny poprawiania plików konfiguracyjnych (apache, itp.), Które zostały zablokowane przez ponowne zainstalowanie systemu operacyjnego. A poza tym - MÓJ ZEGAR WCIŚNIJ. Nie jest nawet bliski bezbolesności i problem nie jest rozwiązany.
Scott