.png)
サーバーをハードリスタートするたびに (メモリ不足や DDOS などで異常終了した可能性があります)、スーパーバイザーの実行が失敗するという問題に直面しています。その理由は特定されており、/var/run/supervisor ディレクトリが削除されるだけです。
/var/run フォルダーはハードリブート時に削除されることを知りました (たとえば、ec2 パネルで強制停止してから起動するなど)。そこで、次のような質問があります。
ハードリブートのたびにこれを実行するにはどうすればよいですかmkdir /var/run/supervisor
?このようなロジックを追加するのに最適な場所はどこですか。/etc/profileではないことは確かだと思います。
(残りは正常に動作し、スーパーバイザーはサービスとして構成され、var/run/supervisor/supervisor.sock で unix sock を使用します)
私のUbuntuバージョン:
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal
答え1
Ubuntu 20 では、スーパーバイザーが systemd サービス ユニットとして起動されることを期待します。
スーパーバイザーのサービス ユニットでは、ディレクトリが作成されるように指定する必要があります (ユニット名は異なる場合があります)。
https://serverfault.com/a/779648&https://serverfault.com/a/840999
sudo systemctl edit --full supervisor
ディレクティブを追加します:
RuntimeDirectory=supervisor