supervisor启动、配置、错误类型
supervisor
启动
/usr/bin/python2 /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
supervisord是服务端,是个deamon,supervisorctl是客户。
更新新的配置到supervisord
supervisorctl update
重新启动配置中的所有程序
supervisorctl reload
启动某个进程(program_name=你配置中写的程序名称)
supervisorctl start program_name
查看正在守候的进程
supervisorctl
停止某一进程 (program_name=你配置中写的程序名称)
supervisorctl stop program_name
重启某一进程 (program_name=你配置中写的程序名称)
supervisorctl restart program_name
停止全部进程
supervisorctl stop all
查看 该程序的日志
supervisorctl tail -f program_name
配置
[program:ODProt_uwsgi]
command=/root/.pyenv/versions/py36_odmerchant/bin/uwsgi --ini /root/ODProt/odprot__uwsgi.ini ##启动方式
autostart = True
startsecs = 5
user=root
redirect_stderr = True
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /root/ODProt/logs/gunicorn_stdout.log
stderr_logfile = /root/ODProt/logs/gunicorn_stderr.log
[program:odcrm_uwsgi]
command=/root/.pyenv/versions/py36_odmerchant/bin/uwsgi --ini /root/odcrm/odcrm__uwsgi.ini
autostart = True
startsecs = 5
user=root
redirect_stderr = True
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /root/odcrm/logs/gunicorn_stdout.log
stderr_logfile = /root/odcrm/logs/gunicorn_stderr.log
[program:ODment_uwsgi]
command=/root/.pyenv/versions/py36_odmerchant/bin/python /root/ODmerchant/manage.py runserver 127.0.0.1:8000
autostart = True
startsecs = 5
user=root
redirect_stderr = True
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /root/ODmerchant/logs/gunicorn_stdout.log
stderr_logfile = /root/ODmerchant/logs/gunicorn_stderr.log
错误
unix:///var/run/supervisor/supervisor.sock no such file
安装好supervisor没有开启服务直接使用supervisorctl报的错
supervisord -c /etc/supervisord.conf
ommand中指定的进程已经起来,但supervisor还不断重启
command中启动方式为后台启动,导致识别不到pid,然后不断重启
supervisor无法检测后台启动进程的pid,而supervisor本身就是后台启动守护进程
启动了多个supervisord服务,导致无法正常关闭服务
运行supervisord -c /etc/supervisord.conf 之前,我直接运行过supervisord -c /etc/supervisord.d/xx.conf,导致有些进程被多个superviord管理,无法正常关闭进程。
使用 ps -fe | grep supervisord 查看所有启动过的supervisord服务,kill相关的进程
Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting
另一个程序已经在监听一个端口,我们的一个HTTP服务器被配置为使用该端口
find / -name supervisor.sock ## supervisor.sock 文件
unlink /run/supervisor/supervisor.sock ##删除