supervisor安装配置

Posted Kevin_1967

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了supervisor安装配置相关的知识,希望对你有一定的参考价值。

前言

在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常、报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务。

所以,就需要一个工具,时刻监控 web 应用的运行情况,管理该进程。

Supervisor 就是解决这种需求的工具,可以保证程序崩溃后,重新把程序启动起来等功能。

简介
Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是 Python 进程)

环境

Centos7

安装

wget https://sec.ly.com/mirror/get-pip.py -O /tmp/get-pip.py
python /tmp/get-pip.py
pip install supervisor

配置

# echo_supervisord_conf > /etc/supervisord.conf //生成一个示例配置文件,配置文件如下
#cat /etc/supervisord.conf |grep -v "^;"|grep -v "^$"
[unix_http_server]
file=/var/supervisor/supervisor.sock   ; the path to the socket file
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB        ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10           ; # of main logfile backups; 0 means none, default 10
loglevel=info                ; log level; default info; others: debug,warn,trace
pidfile=/var/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=false               ; start in foreground if true; default false
minfds=1024                  ; min. avail startup file descriptors; default 1024
minprocs=200                 ; min. avail process descriptors;default 200
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket
[include]
files = /etc/supervisor/conf.d/*.conf

举例

3添加radiusd到supervisor启动
# vim/etc/supervisor/conf.d/radiusd.conf,添加如下内容
[program:radiusd]
command=radiusd -f
autostart=true     
autorestart
=True
添加完成后执行
#supervisorctl update 更新下配置文件,即可启动radiusd,注意启动命令是radiusd -f 而不是radiusd
提示:虽然在写command命令时跟在shell环境下一样,但是需要注意的是,如果你想用supervisord来托管你的程序,必须要让你的程序在前台启动,不允许以daemon的形式启动,比如php-fpm,command命令就需要这么写
command=/usr/local/php/sbin/php-fpm --nodaemonize -c /usr/local/php/etc/php-fpm.conf
否则会报错 如下;
[[email protected] conf.d]# supervisorctl status
php-fpm FATAL Exited too quickly (process log may have details)

附:supervisor常见命令

3 supervisor常见命令
更新新的程序配置到supervisord
supervisorctl update
 
重新加载supervisord的配置文件
supervisorctl reload
 
启动某个进程(program_name=你配置中写的程序名称)
supervisorctl start program_name
 
查看正在守候的进程
supervisorctl satus
 
停止某一进程 (program_name=你配置中写的程序名称)
pervisorctl stop program_name
 
重启某一进程 (program_name=你配置中写的程序名称)
supervisorctl restart program_name
 
停止全部进程
supervisorctl stop all
 
参考资料
https://stackoverflow.com/questions/32965149/supervisord-php5-fpm-exited-too-quickly

以上是关于supervisor安装配置的主要内容,如果未能解决你的问题,请参考以下文章

supervisor安装和配置

配置supervisor管理beego应用

CentOS安装Supervisor并配置自启动

supervisor 安装配置及使用

supervisor 安装配置及使用

supervisor安装及配置——管理守护进程的福利