0

ELINOS4 環境の組み込みデバイスで cron インスタンスを実行しています。このデバイスには問題があります。バッテリーに関連していると思われます。これにより、システムの日付が変更されます。

アプリが日付を再同期するため、組み込みアプリケーションの場合は問題ありません。しかし、cron デーモンの場合、そのスケジューラーに影響を与え、はるか先の次の実行をプログラムします。フラグを指定して cron を実行すると、次のログが表示されます。

[3933] TargetTime=1359121500, sec-to-wait=60
...
[3933] spool dir mtime unch, no load needed.
[3933] tick(45,13,24,0,5) user [root:0:0:...] cmd="/etc/logrotate /etc/logrotate.conf"
[3933] TargetTime=1359121560, sec-to-wait=1130199663
[3933] sleeping for 1130199663 seconds

日付を手動で変更しようとしましたが、cron はこの変更を検出しません ( https://stackoverflow.com/a/4141239をスリープ状態にしています)。

簡単なハックの 1 つは、cron のソース コードを変更することですが、より良い解決策はありますか?

前もって感謝します

4

1 に答える 1

0

明らかな「ハードウェアを修正する」ことは別として、当面の提案は、時間をチェックするデーモンを用意し、それが数秒以上前に戻る(または進む?)ことがわかった場合は、crond(およびその他のプロセスを再起動する)を再起動することです。この種の方法を使用して、「次に目を覚ます時間」を決定できます)。

于 2013-01-25T13:29:47.033 に答える