Linux でのプロセスデーモン スーパーバイザーのインストール、構成、および使用

Linux でのプロセスデーモン スーパーバイザーのインストール、構成、および使用

Supervisor は非常に優れたデーモン管理ツールです。自動起動、ログ出力、自動ログカットなど、一連の強力な機能を備えています。以下は CentOS に Supervisor をインストールして使用した記録です。

インストール

# epel ソース yum インストール epel-release
# スーパーバイザーをインストールする
yum インストール -y スーパーバイザー
# 起動時に自動的に起動する systemctl enable supervisord
# supervisordサービスを起動する systemctl start supervisord 
バッシュ

構成パス

# メイン設定ファイル /etc/supervisord.conf
# プログラム構成フォルダ /etc/supervisord.d/ を実行します
バッシュ

作戦司令部

systemctl 停止 supervisord
systemctl 起動 supervisord
systemctl ステータス supervisord
# 実行中のプログラムに影響を与えずに設定ファイルを再読み込みする systemctl reload supervisord
systemctl 再起動 supervisord
バッシュ

使用テスト

起動と実行の回数を記録するテスト スクリプト test.php を作成します。

<?php
試す {
  ファイルの内容を取得します。
} キャッチ (例外 $e) {
  0 を返します。
}
$a++;
file_put_contents('./times.json', $a);
echo date('Ymd H:i:s') . " これは {$a} 回目のスタートです!!!!" . PHP_EOL;

$i = 1;
一方(1){
  echo date('Ymd H:i:s') . "{$i} 番目の出力" . PHP_EOL;
  $i++;
  睡眠(5);
}

PHP の

プログラム構成フォルダ/etc/supervisord.dに test.ini を追加します。

[プログラム:テスト]
ディレクトリ=/home/wwwroot/test.cc
コマンド=php test.php
自動起動=true
自動再起動=true
stderr_logfile=/home/wwwroot/test.cc/log/error.log
stdout_logfile=/home/wwwroot/test.cc/log/out.log
イニ

上記は必要な基本設定の一部です。より詳細な設定については、以下を参照してください。

;[プログラム:プログラム名]
;command=/bin/cat ; プログラム (相対パスは PATH を使用し、引数を取ることができます)
;process_name=%(program_name)s ; process_name expr (デフォルト %(program_name)s)
;numprocs=1 ; 開始するプロセスコピーの数 (定義 1)
;directory=/tmp ; 実行前に cwd するディレクトリ (def no cwd)
;umask=022 ; プロセスのumask(デフォルトなし)
;priority=999 ; 相対的な開始優先度(デフォルト 999)
;autostart=true ; supervisord の起動時に開始します (デフォルト: true)
;autorestart=true ; 予期しない終了時に再起動する (デフォルト: true)
;startsecs=10 ; プログラムが実行し続ける必要がある秒数 (定義: 1)
;startretries=3 ; シリアル起動失敗の最大回数 (デフォルト 3)
;exitcodes=0,2 ; プロセスの「期待される」終了コード (デフォルト 0,2)
;stopsignal=QUIT ; プロセスを強制終了するために使用されるシグナル (デフォルトは TERM)
;stopwaitsecs=10 ; b4 SIGKILL を待つ最大秒数 (デフォルト 10)
;user=chrism ; プログラムを実行するにはこの UNIX アカウントに setuid します
;redirect_stderr=true ; proc stderr を stdout にリダイレクトします (デフォルトは false)
;stdout_logfile=/a/path ; stdout ログ パス、なしの場合は NONE、デフォルトは AUTO
;stdout_logfile_maxbytes=1MB ; ローテーション前のログファイルの最大バイト数 (デフォルト 50MB)
;stdout_logfile_backups=10 ; stdout ログファイルのバックアップ数 (デフォルト 10)
;stdout_capture_maxbytes=1MB ; 'capturemode' のバイト数 (デフォルト 0)
;stdout_events_enabled=false ; stdout 書き込み時にイベントを発行します (デフォルトは false)
;stderr_logfile=/a/path ; stderr ログ パス、なしの場合は NONE、デフォルトは AUTO
;stderr_logfile_maxbytes=1MB ; ローテーション前のログファイルの最大バイト数 (デフォルト 50MB)
;stderr_logfile_backups=10 ; stderr ログファイルのバックアップ数 (デフォルト 10)
;stderr_capture_maxbytes=1MB ; 'capturemode' のバイト数 (デフォルト 0)
;stderr_events_enabled=false ; stderr 書き込み時にイベントを発行します (デフォルトは false)
;environment=A=1,B=2 ; プロセス環境の追加 (def no adds)
;serverurl=AUTO ; serverurl の計算を上書きする (childutils)
イニ

新しい構成をロードするには、restart または reload configuration コマンドを実行します。

systemctl 再起動 supervisord
systemctl をリロードします supervisord
バッシュ

プロセスを表示:

[root@localhost test.cc]# ps -aux | grep test.php
ルート 22277 0.0 0.6 269732 12124 ? S 17:38 0:00 php test.php
ルート 22335 0.0 0.0 112712 996 ポイント/0 S+ 17:41 0:00 grep --color=auto test.php
バッシュ

サーバーを再起動するか、 kill -9 PID実行してプロセスを強制終了することができます。 supervisorプログラムをできるだけ早く再起動し、プロセスをデーモン化する目的が達成されることがわかります。

構成に関しては、基本的に必要な機能、マルチプロセス操作、丸太切断サイズ、保持量などをカバーしている上記のリファレンスを詳しく見てください。強力で使いやすいです。

より高度な機能については、 supervisor公式ウェブサイトのマニュアルを参照してください: ポータル

要約する

以上が、編集者が紹介した Linux のプロセスデーモン スーパーバイザーのインストール、構成、使用方法です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

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

<<:  Angular のパフォーマンス最適化: サードパーティ コンポーネントと遅延読み込みテクノロジー

>>:  MySQL は SQL ステートメントの最新のレコードをクエリします (最適化)

推薦する

spanタグのスタイルに幅属性を設定する方法

span タグのスタイルに width 属性を直接設定すると、効果がないことがわかります。 disp...

Windows 8 での MySQL Community Server 5.6 のインストールと設定のチュートリアル

この記事では、Windows 8 での MySQL5.6 のインストールと設定のチュートリアルを記録...

ウェブデザインと制作に関する科学的原則と提案の要約

<br />ネットワーク設計の分野では、アイトラッキングに関する研究が非常に盛んに行われ...

VueとFlask間の通信の実装

axiosをインストールして通信を実装するここでは、axios を使用して Vue フロントエンドと...

Linux コマンドを使用してオーディオ形式を変換および結合する方法

FFmpeg flacをインストールする eric@ray:~$ sudo apt install ...

CSS3 フィルターを使用して PNG 画像の色を変更するサンプル コード

この方法は、CSS3のdrop-shadow filterを使用して、png画像の不透明部分に任意の...

自動検索提案機能のスタイルファイルを入力します: suggestion.css

コードをコピーコードは次のとおりです。 .sugLayerDiv{位置:相対; overflow:h...

MycliはMySQLコマンドライン愛好家にとって必須のツールです

マイクリMyCLI は、自動補完と構文の強調表示を備えた MySQL、MariaDB、および Per...

Win10 に Tomcat サーバーをインストールし、環境変数を構成する詳細なチュートリアル (画像とテキスト)

目次JDKをダウンロードしてインストールするTomcat 圧縮パッケージをダウンロードTomcatの...

上部の固定ナビゲーションバーによって CSS アンカーの配置がブロックされる問題の解決方法

多くのウェブサイトでは、ユーザーが簡単に検索したり他のページに移動したりできるように、上部にナビゲー...

HTML ウェブページのメタビューポート属性の説明

HTML メタビューポート属性の説明ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウ...

MySQLのサブクエリユニオンの効率性についての簡単な説明と

最近の製品テストでは、同時呼び出し数が 10 未満の場合に応答時間が 100 ミリ秒以内に維持できな...

MySQL SQL ステートメントのパフォーマンス チューニングの簡単な例

MySQL SQL ステートメントのパフォーマンス チューニングの簡単な例サーバー開発を行う際には、...

Gogs+Jenkins+Docker による .NetCore ステップの自動デプロイ

目次環境説明DockerのインストールゴグのインストールDocker で .NetCore サービス...