RTCがバッテリでバックアップされていないARMベースの組み込みシステムでUbuntuを実行しています。ウェイクアップ時間は1970年のどこかです。したがって、NTPサービスを使用して時間を現在の時間に更新します。
/etc/rc.local
ファイルに次の行を追加しました。
sudo ntpdate -s time.nist.gov
ただし、起動後、時間が更新されるまで数分かかります。その間、tar
とで効果的に作業できませんmake
。
特定の時間にクロックを強制的に更新するにはどうすればよいですか?
更新1:次のコマンド(EricとStephanに感謝)はコマンドラインからは正常に動作しますが、入力時にクロックの更新に失敗します/etc/rc.local
。
$ date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; date
Thu Jan 1 00:00:58 UTC 1970
* Stopping NTP server ntpd [ OK ]
* Starting NTP server [ OK ]
Thu Feb 14 18:52:21 UTC 2013
私は何を間違えていますか?
更新2:最初の更新に応答して出されたいくつかの提案に従ってみましたが、実際に必要な仕事をするものは何もありません。ここに私が試したものがあります:
- サーバーを交換して
us.pool.ntp.org
- プログラムへの明示的なパスを使用する
ntp
サービスを完全に削除し、そのままにsudo ntpdate ...
しておきますrc.local
sudo
上記のコマンドからを削除しますrc.local
上記を使用すると、マシンはまだ1970で起動します。ただし、(経由でssh
)ログインしたコマンドラインからこれを実行すると、を呼び出すとすぐにクロックが更新されntpdate
ます。
私が最後にしたことは、それをファイルから削除rc.local
しntpdate
て、.bashrc
ファイルにを呼び出すことでした。これにより、期待どおりにクロックが更新され、コマンドプロンプトが使用可能になると、現在の時刻が取得されます。
ただし、これは、マシンの電源が入っていて、ユーザーがログインしていない場合、時間が更新されないことを意味します。もちろん、ntp
少なくともクロックが起動から数分以内に更新されるようにサービスを再インストールすることはできますが、その後は1に戻ります。
だから、ntpdate
コマンドを配置してrc.local
も必要なタスクが実行されないのに、それが.bashrc
うまく機能する理由はありますか?
sudo
/etc/rc.localeファイルで使用する必要はありません。これらは既にrootとして実行されています。
timedatectl
しかし、askubuntu.com/questions/832646/...
ntpdate -s ntp.ubuntu.com
[1]:askubuntu.com/a/81301/130162