supervisor安装/配置

一丶介绍

为了保证web项目一直处于运行状态,在程序遇到异常丶报错时,立即重启服务

二丶简介

supervisor是使用python编写的一个进程管理工具,可以在linux系统下启动,重启,关闭进程

三丶安装

1.python安装:pip install supervisor(不推荐)
1.源码安装:https://pypi.python.org/pypi/supervisor
>>>cd /usr/local/src
>>>wget https://pypi.python.org/packages/7b/17/88adf8cb25f80e2bc0d18e094fcd7ab300632ea00b601cbbbb84c2419ea/supervisor-3.3.2.tar.gz
>>>tar -zxvf supervisor-3.3.2.tar.gz

2.生成配置文件:echo_supervisord_conf > /etc/supervisord.conf

3.启动:supervisord -c /etc/supervisord.conf

四丶Supervisor 配置

Supervisor 是一个 C/S 模型的程序,supervisord 是 server 端,supervisorctl 是 client 端。

1.supervisor配置

# vim /etc/supervisord.conf
# 配置文件底部,配置include
[include]
files=/etc/supervisor/*.conf # 引入 `/etc/supervisor/conf.d/` 下的 `.conf` 文件,若你本地无/etc/supervisor目录,请自建

2.program 配置

rogram 的配置文件就写在,supervisord 配置中 include 项的路径下:

# /etc/supervisor/conf.d/ 目录下创建xxx.conf文件
# vim xxx.conf
[program:app] ; 程序名称,在 supervisorctl 中通过这个值来对程序进行一系列的操作
autorestart=True      ; 程序异常退出后自动重启
autostart=True        ; 在 supervisord 启动的时候也自动启动
redirect_stderr=True  ; 把 stderr 重定向到 stdout,默认 false
environment=PATH="/home/app_env/bin"  ; 可以通过 environment 来添加需要的环境变量,一种常见的用法是使用指定的 virtualenv 环境
command=python server.py  ; 启动命令,与手动在命令行启动的命令是一样的
user=ubuntu           ; 用哪个用户启动
directory=/home/app/  ; 程序的启动目录
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /data/logs/usercenter_stdout.log

五丶supervisorctl常用命令

supervisord : 启动supervisor
supervisorctl reload :修改完配置文件后重新启动supervisor
supervisorctl status :查看supervisor监管的进程状态
supervisorctl start 进程名 :启动XXX进程
supervisorctl stop 进程名 :停止XXX进程
supervisorctl stop all:停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl update:根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

参考:https://www.jianshu.com/p/3658c963d28b

https://www.cnblogs.com/xueweihan/p/6195824.html

原文地址:https://www.cnblogs.com/bbiu/p/11675630.html