スーパーバイザーウォッチドッグの使い方を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カスタムプロパティの予備的な理解

推薦する

MySQL 8.0.15 のダウンロードとインストールの詳細なチュートリアルは初心者にとって必須です。

この記事では、MySQL 8.0.15をダウンロードしてインストールするための具体的な手順を参考まで...

JavaScriptは、ユーザーがチェックボックスをオンにする必要があるプロトコルの例を実装します。

js では、ログインまたは登録を確認する前に、ユーザーが特定の契約書を読むように設定します (使用...

Vue3 ベースのスクリプト設定構文 $refs の使用

目次1. Vue2 構文2. Vue3の使用1. コンポーネントのref値を設定する2. コンポーネ...

docker mysqlの起動時に初期化SQLを実行する

1.Mysqlイメージを取得するdocker pull mysql:5.7 2. MySQLイメージ...

メンテナンス可能なJSコードの書き方を教えます

目次保守可能なコードとは何ですか?コード規約1. 読みやすさ2. 変数と関数の命名3. 透過的な変数...

MySQL 8.0.24 バージョンのインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.24バージョンのインストールと設定方法を記録し、皆さんと共有しますM...

DockerはClickHouseをインストールし、データテストを初期化します

クリックハウスの紹介ClickHouse は、SQL クエリを使用して分析データ レポートをリアルタ...

あるテーブルからバッチデータをクエリし、それを別のテーブルに挿入する MySQL の完全な例

事前に言っておくNodejs はデータベースを非同期操作として読み取るため、データベースがデータを読...

Dockerの基本的なネットワーク構成の詳細な説明

外部アクセスポートをランダムにマップする -P フラグを使用すると、Docker は 49000 か...

Ubuntu 18.04 は pyenv、pyenv-virtualenv、virtualenv、Numpy、SciPy、Pillow、Matplotlib をインストールします

1. 現在、Pythonのバージョン管理ツールは数多く存在します。その中でも比較的使いやすいのがPy...

uni-app WeChatアプレット認証ログイン実装手順

目次1. appIDの申請と設定1. appidの取得方法2. AppIDの設定2. 基本的なユーザ...

MySQL InnoDBストレージエンジンについて簡単に説明します

序文:ストレージ エンジンはデータベースの中核です。MySQL の場合、ストレージ エンジンはプラグ...

HTML タグのカスタム属性に関する質問

以前の開発では、クラス、名前などの HTML のデフォルト属性を使用していました。 Huawei社の...

Webpack4プラグインの実装原理についての簡単な説明

目次序文知る練習すれば完璧になる序文wabpack では、ローダーの他にプラグインがコア機能です。プ...

スライド効果を実現するためのネイティブJavaScript

ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...