自分のホストが自分のVMを別のホストに移動すると、現地時間が移動します(最大3秒)。 Chronyはこの問題を解決できますが、それを実現するには長い時間がかかります。この間、視差のために私のデータベースノード(CockroachDB)がダウンしました(最大0.5秒許容)。その後、システムスクリプトが再起動されます。
これで、systemdスクリプトが最初に更新時間を決定したいと思います。だから私のアイテムに追加しました。 /etc/systemd/system/cockroach.serviceスクリプト:
ExecStartPre=-/usr/bin/chronyc -a makestep
ただし、システムスクリプトが「ゴキブリ」ユーザーとして実行されており、chronyデーモンがrootまたはchrony(UDP)ユーザーからのメッセージのみを受け入れるため、エラー501(認証不足)が発生します。
今私は詰まっています。 chronyがゴキブリのユーザーからメッセージを受け取る方法はありますか?または、今時刻を同期する別のオプション(chronyが実行されているため手動更新はできません)。
答え1
解決策は「+」構文を使用することです。実行が始まる前に範囲。以下で実行されるのは慢性病患者root権限(+)で実行可能で、この呼び出し(-)で発生する可能性のあるエラーを無視します。
ExecStartPre=-+/usr/bin/chronyc -a makestep
これは私にとってうまくいきます。
systemd ドキュメントでこれらのプレフィックスのドキュメントを見つけることができます。実行開始パラメータは次のとおりです。https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStart=