開発運用

Supervisor 管理ガイド

Supervisorは、UNIX系システムにおけるプロセスマネージャーで、特にバックグラウンドで実行されるプログラムやサービスを監視・管理するためのツールです。UbuntuやDebianのようなLinuxディストリビューションにインストールすることで、サービスを簡単に制御し、監視することができます。以下では、Supervisorのインストールから設定、管理方法までを包括的に解説します。

1. Supervisorのインストール

まず、UbuntuやDebianにSupervisorをインストールする方法を説明します。

1.1 必要なパッケージの更新

最初に、システムを最新の状態に更新します。以下のコマンドを実行してください。

bash
sudo apt update sudo apt upgrade

1.2 Supervisorのインストール

次に、Supervisorをインストールします。UbuntuやDebianの標準リポジトリに含まれているため、aptコマンドを使って簡単にインストールできます。

bash
sudo apt install supervisor

インストールが完了すると、Supervisorは自動的にサービスとして起動されます。

1.3 インストール確認

Supervisorが正常にインストールされたかを確認するために、以下のコマンドを実行します。

bash
sudo systemctl status supervisor

「active (running)」と表示されれば、正常にインストールされています。

2. Supervisorの設定

Supervisorを使用してサービスを管理するには、設定ファイルを作成する必要があります。設定ファイルは通常、/etc/supervisor/conf.d/ディレクトリに配置されます。

2.1 サービス用設定ファイルの作成

例えば、myappというアプリケーションをSupervisorで管理する場合、次のように設定ファイルを作成します。

bash
sudo nano /etc/supervisor/conf.d/myapp.conf

設定ファイルの内容は以下のようになります:

ini
[program:myapp] command=/usr/bin/python3 /path/to/your/app.py autostart=true autorestart=true stderr_logfile=/var/log/myapp.err.log stdout_logfile=/var/log/myapp.out.log
  • command:実行するコマンドを指定します。
  • autostart:システム起動時に自動的に開始するかを指定します。
  • autorestart:プロセスが終了した場合に自動的に再起動するかを指定します。
  • stderr_logfilestdout_logfile:標準エラーと標準出力のログファイルを指定します。

2.2 設定ファイルの反映

設定ファイルを保存したら、Supervisorに新しい設定を読み込ませるために、以下のコマンドを実行します。

bash
sudo supervisorctl reread sudo supervisorctl update

これにより、Supervisorは新しいプログラムの設定を認識し、管理を開始します。

3. Supervisorでのプロセス管理

Supervisorを使用してサービスを管理する方法は簡単です。以下に、よく使用されるコマンドを紹介します。

3.1 サービスの起動

新しく設定したプログラムを起動するには、以下のコマンドを使用します。

bash
sudo supervisorctl start myapp

3.2 サービスの停止

プログラムを停止するには、次のコマンドを実行します。

bash
sudo supervisorctl stop myapp

3.3 サービスの再起動

プログラムを再起動するには、以下のコマンドを使用します。

bash
sudo supervisorctl restart myapp

3.4 サービスのステータス確認

現在実行中のサービスの状態を確認するには、次のコマンドを実行します。

bash
sudo supervisorctl status

これにより、現在監視中のすべてのプログラムの状態が表示されます。

3.5 サービスの自動起動設定

autostart=trueを設定しても、システム起動時に自動的に起動しない場合があります。これは、supervisordの設定ファイルで[supervisord]セクションにnodaemon=trueを設定している場合に発生することがあります。この場合、以下のコマンドで再起動して解決できます。

bash
sudo systemctl restart supervisor

4. Supervisorのログ管理

Supervisorでは、各プログラムの標準出力と標準エラー出力をログファイルに保存することができます。これにより、プログラムの状態を追跡したり、エラーを特定したりすることができます。

4.1 ログファイルの確認

設定ファイルで指定したログファイルに出力される情報を確認することができます。例えば、myappのエラーログは以下のコマンドで確認できます。

bash
cat /var/log/myapp.err.log

4.2 ログのローテーション

ログファイルが大きくなるのを防ぐために、ログローテーションを設定することが推奨されます。logrotateを使用して、定期的にログを圧縮してバックアップすることができます。/etc/logrotate.d/ディレクトリに設定ファイルを作成して、ログローテーションのスケジュールを指定します。

5. Supervisorの停止とアンインストール

Supervisorを完全にアンインストールするには、以下の手順を実行します。

5.1 Supervisorの停止

まず、Supervisorを停止します。

bash
sudo systemctl stop supervisor

5.2 Supervisorのアンインストール

次に、Supervisorをアンインストールします。

bash
sudo apt remove --purge supervisor

5.3 不要なパッケージの削除

最後に、不要なパッケージを削除します。

bash
sudo apt autoremove

6. まとめ

Supervisorは、Linuxシステムで複数のプロセスを管理・監視するための非常に強力で便利なツールです。UbuntuやDebianでのインストールと設定方法を理解することで、サービスの自動起動、監視、ログ管理が簡単に行えるようになります。これにより、システム管理の負担を軽減し、サービスの信頼性を高めることができます。

Supervisorを使用することで、アプリケーションやサービスがダウンしても自動的に再起動され、常に稼働し続ける環境を維持することができます。

Back to top button