欢迎访问分类目录网
快审联系QQ:158925126当前位置:分类目录网 » 站长资讯 » 技术教程 » 文章详细 订阅RssFeed

supervisor使用配置详解

来源:本站原创 浏览:1341次 时间:2017-06-08

Supervisor 是一个 CS 模式系统,允许用户在类 UNIX 系统上监测和管理一定数量的进程,还支持 Web 界面管理进程。它的目标与 launchd, daemontools 和runit 有些相似, 但是与它们不一样的是, 它不是作为 init (进程号pid是1)运行. 它是被用来控制进程, 并且它在启动的时候和一般程序并无二致。
supervisord 还要求管理的程序是非 daemon 程序,supervisord 会帮你把它转成 daemon 程序, Monit 和 Supervisord 的一个比较大的差异是 Supervisord 管理的进程必须由 Supervisord来启动,Monit 可以管理已经在运行的程序

一、安装 Supervisor

Supervisor 是由 python 编写的,先安装 python 和 pip (python 包管理工具)

yum install epel* python python-pip -y

用 pip 安装 supervisor

pip install supervisor

安装后,会出现2个可执行文件:
/usr/bin/supervisord -- supervisor 服务守护进程
/usr/bin/supervisorctl -- supervisor 控制台进程

生成默认配置文件

echo_supervisord_conf > /etc/supervisord.conf

二、配置 Supervisor

这里以 Nginx 为例介绍怎么管理应用进程

1、安装 nginx

yum -y install nginx # 安装 nginx

设置 nginx 不以后台模式运行

sed -i.bak '/worker_processes/a daemon off;' /etc/nginx/nginx.conf

2、设置 supervisord
主要通过修改其主配置文件实现

vim /etc/supervisord.conf
[inet_http_server]             ; 开启TCP/IP http 服务器
port=192.168.18.10:9001 ; 侦听端口
username=user                  ; 认证用户名
password=123 ; 密码

[supervisord]
logfile=/tmp/supervisord.log    ; 日志输出文件
logfile_maxbytes=50MB           ; 日志最大空间
logfile_backups=10 ; 日志轮转保留数
loglevel=info                   ; (日志等级; default info; others: debug,warn,trace)
pidfile=/tmp/supervisord.pid    ; (pid文件; default supervisord.pid)
nodaemon=false ; (前台运行 ;default false)
minfds=1024 ; (最小文件描述符数 ;default 1024)
minprocs=200 ; (最小进程数  ;default 200)

[rpcinterface:supervisor]       ; rpc 接口
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]    ; 控制台设置
erverurl=unix:///tmp/supervisor.sock    ; socket 访问路径 serverurl=http://192.168.18.10:9001     ; URL 访问路径 username=user                           ; 使用的认证用户名 (上同)
password=123 ; 密码
prompt=mysupervisor                     ; cmd line prompt (default "supervisor")
history_file=~/.sc_history              ; use readline history if available


[program:nginx]
command=/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf         ; 程序路径
directory=/tmp                                        ; 切换到目录
user=www-data                                         ; 执行程序的用户
autorestart=true ; 自动重启
priority=999 ; 优先级
startsecs=1 ; 重启前等待时间
startretries=100 ; 最大重启次数 
stdout_logfile=/tmp/supervisor/nginx/nginx.log        ; 日志文件
stdout_logfile_maxbytes=10MB                          ; 日志文件最大容量
stderr_logfile=/tmp/supervisor/nginx/nginx_err.log    ; 错误日志文件
stderr_logfile_maxbytes=1MB                           ; 错误日志文件最大容量

创建日志目录,设置权限

mkdir -p /tmp/supervisor/nginx/ chown -R nginx:nginx /tmp/supervisor/nginx/

启动 supervisord 的后台进程:

supervisord -c /etc/supervisord.conf

加入开机启动项

echo "supervisord -c /etc/supervisord.conf" >> /etc/rc.local

防火墙上放行 Web 端口

iptables -I INPUT -m state --state NEW -p tcp --dport 9001 -j ACCEPT service iptables save

三、管理界面介绍

supervisorctl start nginx # 启动 nginx supervisorctl start all # 启动所有进程 supervisorctl status # 查看进程状态

也可使用交互模式管理进程:

supervisorctl nginx RUNNING   pid 4883, uptime 0:02:03 mysupervisor> mysupervisor> help default commands (type help <topic>): ===================================== add clear fg open  quit    remove  restart   start   stop  update avail exit maintail  pid   reload  reread  shutdown  status  tail  version

还可使用 Web 管理界面
Web 管理界面
测试:

lsof -i:80 # 查看到此时的 PID 为 1677 COMMAND PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME nginx 1677  root    6u  IPv4  29067      0t0  TCP *:http (LISTEN) nginx 1678 nginx    6u  IPv4  29067      0t0  TCP *:http (LISTEN)

[root@Srv-A meld3-1.0.2]# killall nginx #关闭所有 nginx 进程: [root@Srv-A meld3-1.0.2]# lsof -i:80 # 此时,已经生成了新的 PID 1681

Debug:

生成配置文件时

supervisord -c /etc/supervisord.conf

出现:

Traceback (most recent call last): File "/usr/bin/echo_supervisord_conf", line 5, in <module> from pkg_resources import load_entry_point File "/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line 2603, in <module> File "/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line 666, in require File "/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line 565, in resolve pkg_resources.DistributionNotFound: meld3>=0.6.5

解决方法:pip安装的meld3不可用,手动安装。

wget https://pypi.python.org/packages/source/m/meld3/meld3-1.0.2.tar.gz tar -zxf meld3-1.0.2.tar.gz cd meld3-1.0.2 python setup.py install

参考:
http://supervisord.org/

http://supervisord.org/installing.html

转载来源:http://www.cnblogs.com/hubery/p/5653007.html


公司企业大全

推荐站点

  • 纳米AI搜索 纳米AI搜索

    纳米AI搜索开创全新问答方式,没有套路,直接给答案,让搜索变得简单直观!拍照问、语音搜、听

    www.n.cn
  • 一号屋手赚库 一号屋手赚库

    一号屋手赚库致力于分享最新且免费的手机赚钱软件,在这里,你可以找到各种类型的赚钱app,获

    www.yihaowu.com
  • 事业编招聘网 事业编招聘网

    事业编招聘网(sybzp.cn)事业单位招聘信息基考试资料原创内容网站,主打快速、全面、优

    www.sybzp.cn
  • 4K高清电影下载 4K高清电影下载

    4Kfilm视界是专业的4K电影下载站,本网站页面简洁,提供4K盘HDR杜比视界电影、美剧

    www.4kfilm.cn
  • 百评客 百评客

    百评客深度评测各种赚钱游戏、手机赚钱app,提供客观且真实的评测分析,在这里,你可以更了解

    m.baike5.com
  • 优质设计素材 优质设计素材

    颜格视觉专注海外创意广告设计图片素材下载的网站!提供包括样机素材,平面素材,UI设计,ic

    www.youngem.com
  • 国家智慧教育平台 国家智慧教育平台

    国家智慧教育平台,全称国家智慧教育公共服务平台,是由中华人民共和国教育部指导,教育部教育技

    www.smartedu.cn
  • 鸟说游戏 鸟说游戏

    鸟说是一个聚焦电竞产业的网站,旨在分享不一样的电竞乐趣。我们致力于提供最新的电竞资讯、热门

    www.niaoshuo.com
  • 游软盟 游软盟

    游软盟是一个免费的应用下载网站,为用户提供好玩的手机游戏、实用的手机软件下载,我们也会及时

    app.ufolm.com