このコードでは、ntpd を使用してサーバーから時刻を取得し、時刻を設定しています。ntpd コマンドを実行した後、「ntpq -p」を実行してサーバーのオフセットを確認しています。別のプロセスでntpdの以下のコマンドを実行しており、そのntpqを終了した後です。
/bin/ntpd -g -c /etc/ntp.conf /bin/ntpq -p
1 つのラボ セットアップ ルーターでは、デバイスが適切に時間を取得していることを確認できますが、「/bin/ntpq -p」を実行すると、しばらくの間ブロックされ、タイムアウトが返されます。コードをあきらめる前に、1 時間継続して試行しています。ラボのセットアップでのみ、問題が発生しています。デバイスが他のルーターに接続されているラボの外では、正常に動作しています。ラボ外 (別のルーターに接続) で動作しているデバイスを使用し、そのデバイスをラボ ルーターに接続すると、タイムアウトが発生します。
ラボ ルーターのセットアップに問題があると思いました。それが ntp サーバーに接続できない理由です。しかし、デバイスが NTP サーバーに接続できないのか、どのようにデバイスが適切な時間を取得しているのか疑問に思っていました。デバイスが ntp サーバーから時間を取得しているのに、ntpq -p がタイムアウトを返すのは非常に奇妙です。もう 1 つの奇妙な動作は、ルーターを再起動すると (デバイスが実行されている)、デバイスが再起動されるまで正常に動作し、デバイスを再起動すると同じタイムアウトが発生することです。この奇妙な動作の理由を教えてください。