Mac OS X/日時を強制的にアップデートする
ナビゲーションに移動
検索に移動
概要
MacBook AirやMacBook ProなどのノートPC(バッテリ搭載製品)を中心にスリープから復帰するとMac OS Xの時刻が微妙に狂っていることがある。夕方から早朝にかけて電源を切らずにスリープ放置した場合などのある程度長めのスリープ時に顕著である。
日時の狂いは、サーバーとの通信時に時刻を送信し、一定以上の誤差があるとエラーになるシステムが入っていると苦情が殺到することになる恐ろしい現象である。
標準的なMac OS Xの設定では「日付と時刻を自動的に設定」が有効になっている。 しかし、これは裏でntpdが動いているだけなので、あくまで一定間隔での動作であり(しかも更新時に誤差が少ないと更新間隔が倍々で伸びる)、スリープ復帰直後には動作しない。
解決策:マウスでポチポチやる
- システムステータスバーの時計をクリックする。もしくはシステム環境設定を開く。
- 「日付と時刻の環境設定」を開く。
- 左下の鍵アイコンをクリックする(「変更するにはカギをクリックします」表記の部分)
- 管理者権限を持つユーザーの認証が発生するので突破する。
- 上部の「日付と時刻を自動的に設定」のチェックボックスを無効化し、一呼吸おいてから有効化する。
- 裏ではチェックボックスを無効化することで即座にntpdが停止し、有効化することで即座にntpdが起動する。
- ntpdは起動時に日時のアップデートを実行するのでこの方法により同期される。
面倒くさすぎ。
解決策:コマンドラインでやる
Mac OS Xの時刻周りはFreeBSDと同じなのでntpdateコマンドで更新できる。 ターミナルを開いて以下のコマンドでいける。
sudo ntpdate -u time.apple.com