この記事では、Python に関する関連知識を提供します。スーパーバイザーは、Python で開発されたプロセス管理システムであり、ユーザーが Linux 上のプロセスを監視および制御できるようにします。通常のコマンド ラインを変換できます。プロセスは、バックグラウンドデーモンのプロセスを変更し、異常終了時に自動的に再起動することができるので、見てみましょう。
【関連する推奨事項: Python3 ビデオ チュートリアル ]
Supervisor は Python で開発されたプロセス管理システムで、ユーザーが Linux 上のプロセスを監視および制御できるようにします。通常のコマンド ライン プロセスをバックグラウンド デーモン プロセスに変換し、異常終了時に自動的に再起動します。
この記事のシステムは次のとおりです:
centos、supervisor==4.2.4
pip3 install supervisor
bin ディレクトリ の下に次のようなファイルがいくつか存在します。
ls /usr/local/Python38/bin echo_supervisord_conf supervisorctl supervisord
mkdirvisord。
echo_supervisord_conf > supervisord/supervisord.conf
mkdir -p supervisor/conf.d
vim supervisord/supervisord.conf
[inclue] # 因为我这里是放在root用户目录下,也可以放其它目录 files=/root/supervisord/conf.d/*.conf
supervisord -c supervisord/supervisord.conf
supervisord が開始されます。その後、監視するタスクを彼に引き渡すことができます。停止した場合は、自動的に再起動されます。
supervisord -v
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
: サブプロセスの起動コマンド;
: ログ;
: プロセス名は
ですtest. プロセスを任意の日に停止および開始したい場合は、プロセス名が必要です。
yum install tree tree supervisord supervisord ├── conf.d │ └── test.conf ├── supervisord.conf └── test.sh
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.conf
[inet_http_server] port=*:9001 ; 此处改为*便于调试
supervisorctl reload
supervisorctl reread
supervisorctl update
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 サイトの他の関連記事を参照してください。