Linuxでは、Supervisorは、ユーザーがUNIXなどのオペレーティングシステム上で多数のプロセスを制御できるようにするクライアント/サーバーシステムです。スーパーバイザーの主なメリットは次のとおりです。
- 利便性: すべての単一プロセスインスタンスにrc.dを書き込むのは不便です。同様に、Rc.dスクリプトは、クラッシュしたプロセスを自動的に再起動しません。ただし、Supervisorは、プロセスがクラッシュしたときにプロセスを自動的に再起動するように構成できます。
- 精度: UNIXでは、プロセスの正確なアップ/ダウンステータスを取得することが難しい場合がよくあります。スーパーバイザーはサブプロセスとしてプロセスを開始するため、子のアップ/ダウンステータスを認識します。これは、エンドユーザーのクエリを簡単に行うことができます。
このチュートリアルでは、Supervisorをインストールし、Ubuntu20.04でNginxプロセスを管理するようにSupervisorを構成する方法を学習します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の新しいUbuntu20.04VPS。
- ルートパスワードはサーバーで構成されています。
ステップ1–Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてUbuntu20.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 20.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
ステップ2–スーパーバイザーのインストール
apt-get install supervisor -y
スーパーバイザーをインストールした後、次のコマンドを使用して、インストールされているスーパーバイザーのバージョンを確認できます。
supervisord -v
次の出力が得られるはずです:
4.1.0
次に、次のコマンドを使用してスーパーバイザサービスのステータスを確認します。
systemctl status supervisor
次の出力が得られるはずです:
supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-01 13:31:42 UTC; 9s ago Docs: http://supervisord.org Main PID: 14419 (supervisord) Tasks: 1 (limit: 2353) Memory: 14.2M CGroup: /system.slice/supervisor.service └─14419 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
ステップ3–スーパーバイザーWebインターフェイスを有効にする
スーパーバイザーは、すべてのプロセスを管理するためのWebベースのインターフェースを提供しますが、デフォルトでは無効になっています。これを有効にするには、ファイル/etc/supervisor/supervisord.confを編集します。
nano /etc/supervisor/supervisord.conf
次の行を追加します:
[inet_http_server] port=*:9001 username=admin password=admin
ファイルを保存して閉じてから、スーパーバイザサービスを再起動して変更を適用します。
systemctl restart supervisor
ステップ4–スーパーバイザーによるNginxプロセスの管理
このセクションでは、Supervisorを使用してNginxプロセスを制御する方法を学習します。
まず、次のコマンドを使用してNginxサーバーをインストールします。
apt-get install nginx -y
Nginxをインストールした後、スーパーバイザーを使用してNginxプロセスを管理するため、Nginxサービスを停止して無効にする必要があります。
次のコマンドを使用して、Nginxサービスを停止および無効にできます。
systemctl stop nginx systemctl disable nginx
次に、管理するサービスごとにスタンドアロンの構成ファイルを作成する必要があります。次のコマンドを使用して、Nginx構成ファイルを作成できます。
nano /etc/supervisor/conf.d/nginx.conf
次の行を追加します:
[program:nginx] command=/usr/sbin/nginx -g "daemon off;" autostart=true autorestart=true startretries=5 numprocs=1 startsecs=0 process_name=%(program_name)s_%(process_num)02d stderr_logfile=/var/log/supervisor/%(program_name)s_stderr.log stderr_logfile_maxbytes=10MB stdout_logfile=/var/log/supervisor/%(program_name)s_stdout.log stdout_logfile_maxbytes=10MB
終了したら、ファイルを保存して閉じます。次に、スーパーバイザーに新しい構成について知ってもらうように指示します。
supervisorctl reread
次の出力が得られるはずです:
nginx: available
次に、スーパーバイザーにNginxサービスを開始するように指示します:
supervisorctl update
次の出力が得られるはずです:
nginx: added process group
次に、スーパーバイザーが次のコマンドでNginxサービスを開始したかどうかを確認します。
supervisorctl
次の出力が得られるはずです:
nginx:nginx_00 RUNNING pid 15717、稼働時間0:00:13
Nginxサービスを停止する場合は、次のコマンドを実行します。
stop nginx:nginx_00
出力:
nginx:nginx_00: stopped
Nginxサービスを再開するには、次のコマンドを実行します。
start nginx:nginx_00
出力:
nginx:nginx_00: started
次に、次のコマンドを使用してスーパーバイザシェルを終了します。
exit
次のコマンドを使用して、Nginxプロセスを確認することもできます。
ps aux | grep nginx
次の出力が得られるはずです:
root 15721 0.0 0.4 57176 10064 ? S 14:14 0:00 nginx: master process /usr/sbin/nginx - g daemon off; www-data 15722 0.0 0.2 57828 5340 ? S 14:14 0:00 nginx: worker process www-data 15723 0.0 0.2 57828 5340 ? S 14:14 0:00 nginx: worker process
ステップ5–アクセススーパーバイザーWebインターフェイス
これで、URL http:// your-server-ip:9001を使用してSupervisorWebインターフェイスにアクセスできます。 。以下に示すように、ユーザー名とパスワードを入力するように求められます。
構成で定義した管理者のユーザー名とパスワードを入力し、ファイルしてからサインインをクリックします。 ボタン。次のページにSupervisorWebインターフェイスが表示されます。
結論
このガイドでは、Ubuntu20.04でSupervisorをインストールしてWebインターフェイスを有効にする方法を学習しました。また、SupervisorでNginxプロセスを制御する方法も学びました。 Atlantic.Netを使用してLinuxVPSホスティングアカウントでプロセスを制御してみてください!