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.


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.


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ą.


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


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.)


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.


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ę.


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.


-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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.