tornado 环境部署 supervisor配置

这个直接安装在root 角色下面,不是在虚拟环境的,虚拟环境知识和程序有关

1、下载安装

# 使用 pip 装会出问题的, 最好用yum 安装 可以直接使用 systemctl 会有问题
#sudo pip install supervisor

yum -y install supervisor

2、创建配置文件

这一步是生成supervisor 的配置文件

echo_supervisord_conf > /etc/supervisord.conf

3、修改 里面的配置文件

[include]
files = relative/directory/*.ini

修改为

[include]
files = /etc/supervisor/*.conf

这样配置的说明,相当于给这个文件进行扩展了不然太长

4、在etc 下面创建 supervisor目录,创建xxx.conf

mkdir /etc/supervisor
touch yabg.conf

启动的时候就会找到这个文件

5、填写配置信息

[group:tornadoes]
programs=tornado-8000,tornado-8001,tornado-8002

[program:tornado-8000]
command=/home/python/.virtualenvs/tornado_py2/bin/python /home/python/Documents/demo/chat    /server.py --port=8000
directory=/home/python/Documents/demo/chat
user=python
autorestart=true
redirect_stderr=true
stdout_logfile=/home/python/tornado.log
loglevel=info

[program:tornado-8001]
command=/home/python/.virtualenvs/tornado_py2/bin/python /home/python/Documents/demo/chat    /server.py --port=8001
directory=/home/python/Documents/demo/chat
user=python
autorestart=true
redirect_stderr=true
stdout_logfile=/home/python/tornado.log
loglevel=info

[program:tornado-8002]
command=/home/python/.virtualenvs/tornado_py2/bin/python /home/python/Documents/demo/chat    /server.py --port=8002
directory=/home/python/Documents/demo/chat
user=python
autorestart=true
redirect_stderr=true
stdout_logfile=/home/python/tornado.log     存放日志的地方(标准日志输出)
loglevel=info

说明:

command 前面的是python 解释权所在的位置(这里为设置的虚拟的目录位置), 后面是tornado 的 main.py 所在的位置 –port 监听端口
directory 文件所在的目录
user 用户
上面有多个不同端口,直接监听不同的端口
现在来看下生成目前的配置

[yangxiaodong@dev conf.d]$ cat ohho.conf 
[program:ohho]

user=www
command=/data/env/yang/bin/python  /data/websites/work/main.py

process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1                    ; number of processes copies to start (def 1)
startretries=2                ;
stopsignal=TERM               ; signal used to kill process (default TERM)
redirect_stderr=true          ; redirect proc stderr to stdout (default false)
directory=/data/websites/SDevelop/
autostart=true
stdout_logfile = /data/websites/logs/ohho.out
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=10
stderr_logfile = /data/websites/logs/ohho.err
stderr_logfile_maxbytes=100MB
stderr_logfile_backups=10

直接启动报错

systemctl start supervisord.service
Failed to start supervisord.service: Unit not found.

解决办法:

最好使用 yum 安装就可以啦
使用配置文件启动

supervisord -c /etc/supervisord.conf

查看是不是启动了

ps aux | grep supervisord

supervisorctl

我们可以利用supervisorctl来管理supervisor。

supervisorctl

status # 查看程序状态
stop tornadoes:* # 关闭 tornadoes组 程序
start tornadoes:* # 启动 tornadoes组 程序
restart tornadoes:* # 重启 tornadoes组 程序
update # 重启配置文件修改过的程序