supervisor是什么
Supervisor是一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
安装
Ubuntu下使用
sudo apt-get install supervisor
CentOS下使用
yum install supervisor
supervisor配置(本文重点)
supervisor的配置文件在/etc/supervisord.conf下,将要使用的配置文件复制到原文件的末尾即可。
以下为我使用的配置文件:
这里我启动了4个tornado服务器进程。
[group:tornadoes]
programs=tornado-8010,tornado-8011,tornado-8012,tornado-8013 # 要管理的子进程
[program:tornado-8010]
command=python3 /root/tornadoServer/tornadoServer.py --port=8010 --tcpPort=1110
directory=/root/tornadoServer # 切换目录
user=root
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/tornado.log
loglevel=info
[program:tornado-8011]
command=python3 /root/tornadoServer/tornadoServer.py --port=8011 --tcpPort=1111 # 启动进程的命令,这里要注意的是使用多进程需要通过参数来对使用的端口进行设置
directory=/root/tornadoServer # 切换目录
user=root # 使用root账户来启动进程
autorestart=true # 进程被杀死后会自动重启
redirect_stderr=true # 将stderr的日志写入stdout日志文件中
stdout_logfile=/var/log/tornado.log # 子进程的stdout的日志路径
loglevel=info # 日志级别
[program:tornado-8012]
command=python3 /root/tornadoServer/tornadoServer.py --port=8012 --tcpPort=1112
directory=/root/tornadoServer # 切换目录
user=root
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/tornado.log
loglevel=info
[program:tornado-8013]
command=python3 /root/tornadoServer/tornadoServer.py --port=8013 --tcpPort=1113
directory=/root/tornadoServer # 切换目录
user=root
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/tornado.log
loglevel=info
常用命令
# 查看所有action
supervisorctl help
# 查看任务状态
supervisorctl status all
# 控制所有进程
supervisorctl start all
supervisorctl stop all
supervisorctl restart all
# 启动/停止/重启任务
supervisorctl stop 服务名
supervisorctl start 服务名
supervisorctl restart 服务名