ホームページ >バックエンド開発 >Python チュートリアル >Python プロセス管理ツール Supervisor について理解します。
この記事では、Python に関する関連知識を提供します。スーパーバイザーは、Python で開発されたプロセス管理システムであり、ユーザーが Linux 上のプロセスを監視および制御できるようにします。通常のコマンド ラインを変換できます。プロセスは、バックグラウンドデーモンのプロセスを変更し、異常終了時に自動的に再起動することができるので、見てみましょう。
【関連する推奨事項: Python3 ビデオ チュートリアル ]
Supervisor は Python で開発されたプロセス管理システムで、ユーザーが Linux 上のプロセスを監視および制御できるようにします。通常のコマンド ライン プロセスをバックグラウンド デーモン プロセスに変換し、異常終了時に自動的に再起動します。
この記事のシステムは次のとおりです:
centos、supervisor==4.2.4
pip3 install supervisorインストールが完了すると、Python
bin ディレクトリ の下に次のようなファイルがいくつか存在します。
ls /usr/local/Python38/bin echo_supervisord_conf supervisorctl supervisord注: Python の bin ディレクトリには環境変数が追加されているため、これらのファイルは直接実行できます。
mkdirvisord。
echo_supervisord_conf > supervisord/supervisord.confエラーが報告された場合、-bash: /etc/supervisord.conf: 権限が拒否されました。root ユーザーに切り替える必要があります。 2. 子プロセス設定ファイルのパスを作成します
mkdir -p supervisor/conf.d後続のタスクでは、これをデーモン プロセスとして使用する必要があり、すべて設定ファイルが必要なので、これらの設定ファイルを conf に置きます。 d ディレクトリの下にあります。 3. 設定ファイルを変更します
vim supervisord/supervisord.conf最後の部分を
[inclue] # 因为我这里是放在root用户目录下,也可以放其它目录 files=/root/supervisord/conf.d/*.conf
supervisord -c supervisord/supervisord.confこれにより
supervisord が開始されます。その後、監視するタスクを彼に引き渡すことができます。停止した場合は、自動的に再起動されます。
supervisord -v2. 簡単なシェルスクリプトを作成します
vim supervisord/test.sh内容は次のとおりです
#!/bin/bash while : do echo `date '+%Y-%m-%d %H:%m:%S'` sleep 1 done簡単な実行、
Ctrl C Exit
vim supervisor/conf.d/test.conf
test.conf内容は次のとおりです:
[program:test] command=sh /root/supervisord/test.sh priority=999 ; 相对启动优先级,数值越小越优先,默认为999 autostart=true ; 在supervisor启动时自动启动,默认为true autorestart=true ; 在意外退出时重新启动,默认为true startsecs=10 ; 子进程启动多少秒后状态为running则认为启动成功,默认为1 startretries=3 ; 尝试启动的最大次数,默认为3 exitcodes=0,2 ; 进程的预期退出代码列表,默认为0 stopsignal=QUIT ; 终止进程的信号,默认为TERM stopwaitsecs=10 ; 在SIGKILL之前等待的最大秒数,默认为10 user=root ; 在某用户下设置uid来启动程序,默认不切换用户 redirect_stderr=true ; 是否重定向stdout和stderr,默认为false stdout_logfile=/tmp/supervisor.stdout.log ; stdout的输出文件,默认为AUTO stdout_logfile_maxbytes=50MB ; stdout最大文件大小,默认为50MB stdout_logfile_backups=10 ; stdout文件备份数,设为0则不备份,默认为10実際には、あなただけが3 つのパラメータを設定する必要がありますが、他のパラメータについては心配する必要はありません:
: サブプロセスの起動コマンド;
: ログ;
: プロセス名は
ですtest. プロセスを任意の日に停止および開始したい場合は、プロセス名が必要です。
yum install tree tree supervisord supervisord ├── conf.d │ └── test.conf ├── supervisord.conf └── test.sh4。設定を再読み取り、子プロセスを更新します。
supervisord が開始されているため、
ps -ef | grep supervisord.conf を通じて表示できます。サブプロセス設定ファイルが追加されたため、再ロードする必要があります:
supervisord ディレクトリに移動します:
cd supervisord。そうしないと、次のコマンドを実行する際に問題が発生します。コマンド。
supervisorctl rereadプロセスのステータスを再度確認してください
supervisorctl status結果:
テスト実行中 pid 30278、稼働時間 1:29:41名前
test のプロセスはデーモン プロセスとしてバックグラウンドですでに実行されています。これを強制終了しましょう:
kill 30278もう一度
supervisorctl status を実行すると、ステータスは
starting からすぐに
running に変わります。その後、
supervisord の役割はすでに明らかであり、タスクを自動的に監視するのに役立ちます。
vim supervisord.confUncomment
[inet_http_server] port=*:9001 ; 此处改为*便于调试supervisord を再起動
supervisorctl reloadブラウザ アクセス: linux_ip:9001.付録:visorctl 共通コマンド新しい設定ファイル、reload
supervisorctl reread設定ファイルの変更、reload
supervisorctl updateスーパーバイザの再起動d
supervisorctl reloadすべてのプロセス ステータスの表示
supervisorctl status表示プロセス ステータスの指定
supervisorctl status <name>すべての子プロセスを開始
supervisorctl start all指定した子プロセスを開始
supervisorctl start <name>すべての子プロセスを再開
supervisorctl restart all指定した子プロセスを再開
supervisorctl restart <name>すべての子プロセスを停止します
supervisorctl stop all指定した子プロセスを停止します
supervisorctl stop <name>子プロセスをプロセス グループに追加します
supervisorctl add <name>子プロセスをプロセス グループから削除するには、次の手順が必要です。まず停止します。注: 削除後、再読み込みと更新を使用してプロセスを再実行する必要があります
supervisorctl reomve <name>[関連する推奨事項:
Python3 ビデオ チュートリアル ]
以上がPython プロセス管理ツール Supervisor について理解します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。