systemdスクリプトでchronyを使用した更新時間(特定のアプリケーションの再起動)はありますか?

systemdスクリプトでchronyを使用した更新時間(特定のアプリケーションの再起動)はありますか?

自分のホストが自分の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=

おすすめ記事