用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制.
安装
# 安装依赖 sudo yum install python-setuptools sudo easy_install pip sudo pip install supervisor # 生成配置文件 echo_supervisord_conf > /etc/supervisord.conf
常用命令
/usr/bin/supervisord -c /etc/supervisord.conf # 启动,建议指定配置文件启动 supervisorctl status # 查看进程运行状态 supervisorctl restart program_name # 重启 supervisorctl start program_name # 进程名 启动进程 supervisorctl stop program_name # 进程名 关闭进程 supervisorctl restart # 进程名 重启进程 supervisorctl update # 重新载入配置文件 supervisorctl shutdown # 关闭 supervisord supervisordctl clear # 进程名 清空进程日志 supervisordctl # 进入到交互模式下。使用help查看所有命令。 start stop restart + all # 表示启动,关闭,重启所有进程。 supervisorctl stop all # 全部停止 supervisorctl reload # 重载配置文件
默认配置文件:/etc/supervisord.conf
在默认配置文件下引入进程管理配置文件(即supervisord.d文件夹下的配置文件)
[include] files = supervisord.d/*.ini files = supervisord.d/*.conf
进程管理配置文件放到:/etc/supervisord.d/目录下即可
如下配置即是一个.conf文件
command=php fp.php #执行的命令 directory=/usr/local/nginx/html/GatewayWorker #文件路径 autostart=true #自启动 autorestart=true #自动重启 stdout_logfile=/opt/htdocsyytz/storage/logs/wsserver.log #标准日志路径 stderr_logfile=/opt/htdocsyytz/storage/logs/wsserver.log #错误日志路径 startsecs=10 numprocs=1
需要注意的是,若fp.php执行报错,会导致supervisord启动失败



