supervisordインスタンス構成

2940 ワード

supervisord初体験編ではsupervisordを構築し、基本的な使い方も理解しました【supervisord初体験トランスポートゲート】
次に、実際に使用するインスタンスプログラムの構成を開始します.
supervisordでよく使われるパラメータ構成
パラメータ
さぎょう

process_name
プログラム名
testSupervisord
user
プログラムが起動したユーザー、デフォルトはroot
root
directory
プログラム起動ディレクトリ
/home/leon/projects/usercenter
command
プログラム起動のコマンド
python3 test.py
startsecs
起動5秒後に異常終了なし、正常に起動したものとする
5
startretries
起動に失敗した場合の再試行回数は、デフォルトで3回です.
3
autorestart
プログラム異常終了後自動再起動
true
autostart
supervisord起動時に一緒に起動
true
redirect_stderr
stderrをstdout、デフォルトfalseにリダイレクト
true
stdout_logfile_maxbytes
stdoutログファイルサイズ、デフォルト50 MB
50MB
stdout_logfile_backups
stdoutログファイルバックアップ数、デフォルト10
2
stderr_logfile
エラーログ出力パス
/var/log/supervisor/progress.err.log
stdout_logfile
通常のログ出力パス
/var/log/supervisor/progress.out.log
numprocs
開始されたデーモン数
3
priority
デーモンプロセスの優先順位
999
umask
プロセスの権限
002
environment
環境変数の追加
environment=PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3
注意!
1.numprocsが1より大きい場合process_name式は%(program_name)s_%(process_num)02dと書く
2.Python環境設定
pythonのimportメカニズムでは、pythonのモジュールsiteがモジュールインポートパスの追加(Append module search paths for third-party packages to sys.path)を担当し、そのmainメソッドを表示します.そのうち、addusersitepackagesの動作は、現在のユーザーにインポートされるmodule search pathsです.さらにソースコードを参照すると、get_config_var('userbase')によって~/.local(sysconfig.py line 205)が取得され、~は環境変数の現在のユーザーを表します.したがって、HOME環境変数を追加することで、pythonがモジュールインポートパスを正しく見つけることができます.supervisorでModuleNotFoundErrorエラーが発生したのはsysのためです.pathは、所望のモジュールが存在する経路をロードしていない.environmentを設定することによって、所望のモジュールの経路を指定することができる.
PYTHONPATH指定:environment=PYTHONPATH=/home/user/.local/lib/python3.6/site-packagesを使用して、指定されたユーザに対してインストールされたpythonモジュール(pip install XXX--userインストールユーザ)について、HOMEを指定することによってpythonにモジュールが存在する経路を見つけることもできます:environment=HOME=/home/user≪インスタンス|Instance|emdw≫
以下は公式に与えられた例です
[program:cat]
command=/bin/cat
process_name=%(program_name)s
numprocs=1
directory=/tmp
umask=022
priority=999
autostart=true
autorestart=unexpected
startsecs=10
startretries=3
exitcodes=0
stopsignal=TERM
stopwaitsecs=10
stopasgroup=false
killasgroup=false
user=chrism
redirect_stderr=false
stdout_logfile=/a/path
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
stderr_logfile=/a/path
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stderr_events_enabled=false
environment=A="1",B="2"
serverurl=AUTO

参考文献:supervisord公式マニュアル:http://supervisord.org/index.htmlsupervisor環境変数:https://blog.csdn.net/hunter_yang_Tuziki/article/details/86675121