スーパーバイザーウォッチドッグの使い方を3分で学ぶ

スーパーバイザーウォッチドッグの使い方を3分で学ぶ

ソフトウェアとハ​​ードウェア環境

  • centos7.6.1810 64ビット
cat /etc/redhat-release # システムバージョンを表示する
  • スーパーバイザー 3.4.0
  • Python 2.7.5

スーパーバイザー紹介

Supervisor は Python で書かれたプロセス管理ツールです。1 つ以上のプロセスを簡単に監視、開始、停止、再起動できます。プロセスが予期せず終了した場合、スーパーバイザーはプロセスの終了を監視し、プログラマーやシステム管理者がプロセスを制御するコードを記述することなく、プロセスを自動的に簡単に復元できます。

スーパーバイザーのインストール

yum インストール -y epel-release
yum インストール -y スーパーバイザー

開始と自動開始の有効化

systemctl 起動 supervisord
systemctl は supervisord を有効にする

その他のコマンド:

systemctl stop supervisord #停止して起動systemctl start supervisord #起動systemctl status supervisord #起動ステータスsystemctl reload supervisord #高負荷systemctl restart supervisord #再起動

スーパーバイザーのウェブクライアント

Supervisor は Web ベースの制御を提供します。管理者はページ上のボタンをクリックしてプロセスを開始および再開できるため、非常に便利です。

設定ファイルを入力し、Webクライアントのサポートを有効にします

vim /etc/supervisord.conf

外部アクセス用に提供されている場合は、ポートをローカルIPアドレスに変更する必要があります。

#10行目から13行目のコメントを解除します。先頭の数字は行番号です [inet_http_server] ; inet (TCP) サーバーはデフォルトで無効になっています
port=192.168.26.121:9001; (ip_address:ポート指定子、*:すべてのifaceのポート)
username=user ; (デフォルトはユーザー名なし (オープンサーバー))
password=123 ; (デフォルトはパスワードなし (オープンサーバー))

設定が完了したら、サービスを再起動します

systemctl 再起動 supervisord

supervisord アプリケーション構成

supervisord設定ファイルを入力する

/etc/supervisord.conf を編集する

設定ファイルの最後の行には

[含む]
ファイル = supervisord.d/*.ini

つまり、すべてのアプリケーション設定ファイルはこのディレクトリに保存され、.ini形式で保存されます。アドレスは自分で変更できますが、サフィックスは変更しないでください。

それでは監視対象アプリケーションを作成しましょう

テスト用のPython構成を作成する

pythonというアプリケーション構成を作成する

vim /etc/supervisord.d/python.ini

設定ファイルの内容。コマンドはアプリケーションの起動時に実行する必要があるコマンドです。

[program:python] #ここでのpythonは、Webフロントエンドとターミナルに表示される監視名です。command=python /tmp/supervisordtest/test.py #監視するファイルアドレスです。autostart=true
自動再起動=true
開始秒数=1
開始再試行回数=3
リダイレクトstderr=true
stdout_logfile=/tmp/supervisordtest/access_python.log #ログ アドレス、ディレクトリは自分で設定できます stderr_logfile=/tmp/supervisordtest/error_python.log #ログ アドレス、ディレクトリは自分で設定できます

test.pyを作成する

mkdir /tmp/supervisordtest
vim /tmp/supervisordtest/test.py

プログラムの内容: 無限ループを開始し、コンテンツを印刷し続ける

真の場合:
 印刷(100)

設定ファイルを有効にするには、supervisordを再起動します。

systemctl 再起動 supervisord

アプリケーションが正常に起動するかどうかを確認します

1. コマンドビュー

systemctl ステータス supervisord

2. 視覚的なウェブ閲覧

ウェブターミナルは、再起動、停止、ログのクリーンアップ、ログの表示などの操作を行うことができます。

スーパーバイザーに関連するいくつかのコマンド

インストールが完了すると、 supervisorctlsupervisordecho_supervisord_conf 3 つのシステム コマンドが生成されます。

1. supervisordsupervisorを実行するとプロセスsupervisordが開始され、管理対象プロセスの開始と管理対象プロセスを自身の子プロセスとして開始する責任があり、管理対象プロセスがクラッシュしたときに自動的に再起動できます。

2. supervisorctlは、 s tartstoprestartなどのサブプロセスを管理するためのコマンドを実行するために使用できるコマンドライン管理ツールです。

sudo supervisorctl デモウェブを起動します

demoweb はプロセスの名前です。詳細なコマンドと手順については、下の表を参照してください。

コマンド説明
supervisorctl start プログラム名プロセスを開始する
supervisorctl stop プログラム名プロセスを停止する
supervisorctl 再起動プログラム名プロセスを再起動する
supervisorctl ステータス プログラム名プロセスのステータスを確認する
supervisorctl すべてを停止すべてのプロセスを停止 | \
スーパーバイザctlリロード最新の設定ファイルを読み込み、すべてのプロセスを再起動します
supervisorctl アップデート最新の設定に従って設定が変更されたプロセスを再起動します。更新されていないプロセスは影響を受けません。

3. echo_supervisord_conf

デフォルトの設定ファイルを生成するために使用されます(デフォルトの設定ファイルは非常に完全でコメントがあり、必要に応じて参照するのに適しています。使用方法は次のとおりです。

echo_supervisord_conf > test.conf

これで、3分でスーパーバイザーウォッチドッグの使い方を学ぶ方法についての記事は終わりです。3分でスーパーバイザーの使い方についての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux プロセス管理ツール スーパーバイザーのインストールと設定のチュートリアル
  • Linux運用保守ツールSupervisor(プロセス管理ツール)のインストールと使用
  • Linux でのプロセスデーモン スーパーバイザーのインストール、構成、および使用
  • Supervisor のインストールと構成の詳細な説明 (Linux/Unix プロセス管理ツール)
  • PHPプログラマーはスーパーバイザーを使用してデーモンプロセスを実装するLinuxシリーズをプレイします

<<:  ウェブサイトのハイパーリンクを開く方法に関する議論

>>:  CSSカスタムプロパティの予備的な理解

推薦する

CSS 命名: BEM、スコープ付き CSS、CSS モジュール、CSS-in-JS の説明

CSS の適用範囲はグローバルです。プロジェクトがどんどん大きくなり、参加する人が増えるにつれて、命...

vue3とvue2の利点の比較

目次利点1: diffアルゴリズムの最適化利点2: ホイスト静的静的リフティング利点3: cache...

Dockerコンテナのデータボリュームの詳細な説明

何ですかまず、Docker の概念を見てみましょう。アプリケーションと実行環境をコンテナにパッケージ...

CSS 変数に基づくテーマ切り替えに最適なソリューション (推奨)

この要件を受け取ったとき、Baidu は、CSS リンクの置き換え、className の変更、le...

Docker を使用して Nginx+Flask+Mongo アプリケーションをデプロイする

サーバーにはNginx、データベースサポートにはMongo、Python言語のWebフレームワークに...

MySQL の結合テーブルにインデックスを作成する方法

この記事では、MySQL で 2 つのテーブルを関連付ける結合テーブルにインデックスを作成する方法を...

MySQL 学習: データベース テーブルの 5 つの主要な制約を初心者向けに詳しく説明します

目次1. 制約の概念と分類2. 5つの制約の追加と削除2.1 制約を追加する6つの方法2.2 制約を...

クラウドネイティブテクノロジー Kubernetes (K8S) の紹介

目次01 Kubernetes とは何ですか? 02 KubernetesとCompost+Swar...

JavaScript で文字列内の最長の単語を見つける 3 つの方法 (推奨)

この記事は、Free Code Camp の基本アルゴリズム スクリプト「文字列内の最長の単語を見つ...

MySQL テーブルにはどのくらいの量のデータを保存できますか?

プログラマーは MySQL を扱う機会が多く、毎日触れているとも言えますが、MySQL テーブルには...

ドラッグ効果を実現するための js オブジェクト指向メソッド

この記事では、ドラッグアンドドロップをJSオブジェクト指向で実装するための具体的なコードを参考までに...

JavaScript でシンプルな Web 時計を実装する

JavaScript を使用して Web ページ クロックを実装します。効果は次の図に示されています...

CentOS の環境変数と設定ファイルの詳細な説明

序文CentOS 環境変数設定ファイル システムは階層型システムであり、他のマルチユーザー アプリケ...

MySQL 8.0 における MySQL のインストールと新しいパスワード認証方法の詳細な説明

1. はじめにOracle が MySQL 8.0GA をリリースしました。海外での GA はリリー...

Dockerコンテナを使用する簡単な例

目次1. イメージをプルする2. イメージを実行する3. コンテナ内でアプリケーションをテストする4...