Saya menjalankan Ubuntu pada sistem embedded berbasis ARM yang tidak memiliki RTC yang didukung baterai. Waktu bangun adalah suatu tempat selama tahun 1970. Jadi, saya menggunakan layanan NTP untuk memperbarui waktu ke waktu saat ini.
Saya menambahkan baris berikut ke /etc/rc.local
berkas:
sudo ntpdate -s time.nist.gov
Namun, setelah startup, masih membutuhkan beberapa menit hingga waktu diperbarui, selama periode itu saya tidak dapat bekerja secara efektif tar
dan make
.
Bagaimana Saya bisa memaksa pembaruan jam pada waktu tertentu?
Pembaruan 1: Berikut ini (terima kasih kepada Eric dan Stephan) berfungsi dengan baik dari baris perintah, tetapi gagal memperbarui jam saat dimasukkan /etc/rc.local
:
$ date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; dateThu Jan 1 00:00:58 UTC 1970 * Stopping NTP server ntpd [ OK ] * Starting NTP server [ OK ] Thu Feb 14 18:52:21 UTC 2013
Apa yang saya lakukan salah?
Pembaruan 2: Saya mencoba mengikuti beberapa saran yang datang sebagai tanggapan atas Pembaruan 1, tetapi sepertinya tidak ada yang benar-benar melakukan pekerjaan sesuai kebutuhan. Inilah yang saya coba:
- Ganti server untuk
us.pool.ntp.org
- Gunakan jalur eksplisit ke program
- Menghapus
ntp
layanan sama sekali dan meninggalkan hanyasudo ntpdate ...
dirc.local
- Menghapus
sudo
dari perintah di atas dalamrc.local
Menggunakan di atas, mesin masih dimulai pada 1970. Namun, ketika melakukan ini dari baris perintah setelah masuk (melalui ssh
), jam diperbarui segera setelah saya memanggil ntpdate
.
Hal terakhir yang saya lakukan adalah untuk menghapus bahwa dari rc.local
dan menempatkan panggilan untuk ntpdate
dalam saya .bashrc
file. Ini memperbarui jam seperti yang diharapkan, dan saya mendapatkan waktu saat ini yang sebenarnya setelah command prompt tersedia.
Namun, ini berarti bahwa jika mesin dihidupkan dan tidak ada pengguna yang masuk, maka waktu tidak pernah mendapat pembaruan. Aku bisa, tentu saja, menginstal ulang ntp
layanan jadi setidaknya jam diperbarui dalam beberapa menit dari startup, tapi kemudian kita kembali di square 1.
Jadi, apakah ada alasan mengapa menempatkan ntpdate
perintah dalam rc.local
tidak melakukan tugas yang diperlukan, saat melakukannya di .bashrc
bekerja dengan baik?