免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
今日はピットスーパーバイザのを踏んで
このプロセスを停止、またはそれを再起動するかさえもすべてこの方法を停止しようと、上記のこのような状況を示すように(モザイクプロセス名の一部)は、以下に示すように、ポスト:
:背景
いくつかの別々のプログラムの展開を管理するために、スーパーバイザーを使用して、サーバー上で実行されています。インストール、設定、操作など、ネオ王の上司はたくさんに行くために、Baiduはそれらを繰り返すことはしません。ここで私が使用する唯一の少数の便利なコマンド。
#启动supervisor, supervisord.conf为配置文件
supervisord -c xxx/supervisord.conf
#supervisord.conf 部分配置
[program:program-name]
command = /root/program-name.sh ;启动程序的脚本(位置自定义)
numprocs = 1 ;number of processes copies to start
autostart = true ;在 supervisord 启动的时候也自动启动
autorestart = true ;程序异常退出后自动重启
startretries = 10 ;启动失败自动重试次数,默认是 3
startsecs = 10 ;启动 10 秒后没有异常退出,就当作已经正常启动了
stopsignal = KILL ;干掉进程的信号,默认为TERM
redirect_stderr=true ;把 stderr 重定向到 stdout,默认 false
exitcodes = 0,2 ;进程退出码,autorestart=unexpected时有用
stdout_logfile=/program-name/logs/program-name.log ;日志输出目录(可自定义)
#supervisorctl 是supervisord的客户端,可以管理进程,常用命令
status # 查看程序状态
start program-name # 启动程序
stop program-name # 关闭 程序
restart program-name # 重启程序
reread # 读取有更新(增加)的配置文件,不会启动新添加的程序
update # 重启配置文件修改过的程序
II:質問:PIDプログラム0
、プログラムを再起動し、問題の始まりを見つけたときのプログラムの新しいバージョンに置き換えられました。
3:解決します
直接、または以下-------サービス全体の監督を再起動し
、問い合わせて問題は、ファイルのアクセス権によって引き起こされる、原因であると考えられることがわかりました。ネオ6月には、設定時にログ出力ディレクトリを設定しました。
stdout_logfile=/program-name/logs/program-name.log ;日志输出目录(可自定义)
新聞はミスをしたときしかし、ときに新しい展開プロジェクト、無logsディレクトリ、無logsフォルダ、すなわち/プログラム名/は、その後、起動します
supervisor>
supervisor> start program-name
error: <class 'xmlrpclib.ProtocolError'>, <ProtocolError for 127.0.0.1/RPC2: 500 Internal Server Error>: file: /usr/lib/python2.6/site-packages/supervisor-3.1.3-py2.6.egg/supervisor/xmlrpc.py line: 470
表示プログラムは、0 = PIDとなります。しかし、(アドバイスしてください停止するには、何か良い方法があれば)、プロセスを殺すために、ネオ王を停止する方法はありません。
フォルダを作成し、起動スクリプトでログディレクトリを作成するためのコードを追加します。あなたはを参照することができます
if [ ! -e "$base_home/logs" ] ; then
mkdir "$base_home/logs"
fi