Ubuntuを再起動すると、スーパーバイザは他のサービスの前に終了します。

Ubuntuを再起動すると、スーパーバイザは他のサービスの前に終了します。

Redisを使用するキュープロセスを操作するスーパーバイザーがいます。サーバーを再起動すると(Ubuntu 18.04)、Redisサーバーはスーパーバイザーより前に終了し、キュープロセスは欠落しているRedisサーバーのためにSlackから何百ものエラーでスパムを送信しました。

これらのエラーがすべて発生しないように、スーパーバイザサブプロセスで使用される他のサービスの前にシャットダウンするようにスーパーバイザを設定する必要があります。私はそれがsystemdになければならないことを知っていますが、これまでやっていないので、Googleで見つけるための良い方法を見つけることができません。

答え1

systemd停止中は始動シーケンスを逆にします。つまり、supervisorサービスデバイスがある場合は、終了する前に停止しますAfter=redis。 (またはサービスユニットに追加)supervisorredisBefore=supervisorredis

~からinfo systemd.unit

=前、=後

[...] 順次依存関係を持つ 2 つのデバイスがシャットダウンすると、開始順序の逆が適用されます。 [...]

関連情報