一:简介

supervisord是一个进程管理工具,提供web页面管理,能对进程进行自动重启等操作。
优点:- 可以将非后台运行程序后台运行
    - 自动监控,重启进程
缺点:- 不能管理后台运行程序
    - 对多进程服务,不能使用kill关闭

二:安装supervisord

1.pip安装supervisord

pip install supervisor

2.生成配置文件

echo_supervisord_conf > /etc/supervisord.conf

如果报错:

vim /usr/lib/python2.6/site-packages/supervisor-3.3.3-py2.6.egg-info/requires.txt
# 注销如下内容即可
#meld3 >= 0.6.5

3.修改配置文件

[unix_http_server]
file=/tmp/supervisor.sock   ; the path to the socket file

# 开启web界面
[inet_http_server]         ; inet (TCP) server disabled by default
port=mweb07:9001        ; ip_address:port specifier, *:port for all iface
username=admin         ; default is no username (open server)
password=123456             ; default is no password (open server)[supervisord]
logfile=/tmp/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=/tmp/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:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket[program:elasticsearch]
command=/data/elk/elasticsearch/bin/elasticsearch  ; 管理命令,supervisor不支持后太进程
process_name=%(program_name)s
user=elk                                 ;进程启动用户
autostart=true                           ;是否随supervisor启动
autorestart=true                         ;是否在挂了之后重启,意外关闭后会重启,比如kill掉!
startretries=3                           ;启动尝试次数
stderr_logfile=/tmp/tail1.err.log        ;标准输出的位置
stdout_logfile=/tmp/tail1.out.log        ;标准错误输出的位置
loglevel=info                            ;日志的级别[program:redis]
command=/data/elk/redis/src/redis-server /data/elk/redis/redis.conf
process_name=%(program_name)s
user=elk
directory=/data/elk/redi

4.启动关闭 启动:

supervisord -c /etc/supervisord.conf

关闭:

supervisorctl shutdown

管理命令:

supervisorctl stop program_name  # 停止某一个进程,program_name 为 [program:x] 里的 xsupervisorctl start program_name  # 启动某个进程supervisorctl restart program_name  # 重启某个进程supervisorctl stop groupworker:  # 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)supervisorctl stop groupworker:name1  # 结束 groupworker:name1 这个进程 (start,restart 同理)supervisorctl stop all  # 停止全部进程,注:start、restartUnlinking stale socket /tmp/supervisor.sock
、stop 都不会载入最新的配置文件supervisorctl reload  # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程supervisorctl update  # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

三:安装supervisord-monitor

  • supervisord-monitor是对supervisord的一个集中化管理工具,可以对supervisor统一化操作

1.安装

# 下载
git clone https://github.com/mlazarov/supervisord-monitor.git

# 生成配置文件
cd supervisord-monitor/
cp application/config/supervisor.php.example application/config/supervisor.php

2.修改配置文件,添加supervisord主机 mweb08 展示名 url 服务器地址 port 端口

$config['supervisor_servers'] = array('mweb08' => array('url' => 'http://mweb08/RPC2','port' => '9001','username' => 'admin','password' => '123456'),'mweb07' => array('url' => 'http://mweb07/RPC2','port' => '9001','username' => 'admin','password' => '123456'),
);

3.添加nginx对supervisord-monitor的支持

    server {listen 82;server_name  localhost;set $web_root /data/web/supervisord-monitor/public_html;root $web_root;index  index.php index.html index.htm;location / {try_files $uri $uri/ /index.php;}location ~ \.php$ {fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;include        fastcgi_params;fastcgi_param  SCRIPT_FILENAME $web_root$fastcgi_script_name;fastcgi_param  SCHEME $scheme;}}

5.展示,重启nginx后,访问即可 

supervisord相关推荐

  1. 用supervisord管理杂乱的服务

    2019独角兽企业重金招聘Python工程师标准>>> Supervisord是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效. 环境 centos py ...

  2. supervisord+supervisorclusterctl+supervisord-monit

    为什么80%的码农都做不了架构师?>>>    最近blog更新的有点慢了,先补一篇关于supervisord的文章,supervisord使用很久了,那是在还没掌握怎么在linux ...

  3. systemd下supervisord服务开机自启动以及注意事项

    systemd 下supervisord服务开机自启动 centos7 开机自启动脚本: #vim /lib/systemd/system/supervisord.service# superviso ...

  4. Docker 使用 supervisord 管理 lumen队列与crontab

    之前在docker内使用lumen的队列服务做了一个异步,处理一些内容审核的相关操作.但是每次重启容器之后都需要进入docker内部启动lumen的队列进程(虽然文档内有写使用supervisord管 ...

  5. Docker + gunicron + supervisord 部署python应用

    2019独角兽企业重金招聘Python工程师标准>>> 首先要看一下项目的一些基本目录结构 requirement.txt (项目的安装包文件) supervisord.conf ( ...

  6. python supervisord 远程命令执行漏洞(CVE-2017-11610)

    Supervisord Supervisord是一款Python开发,用于管理后台应用(服务)的工具,其角色类似于Linux自带的Systemd. 我觉得它相比Systemd有几个特点: 配置比较简单 ...

  7. Centos7.x 安装 Supervisord

    [环境] 系统:Centos 7.3 软件:supervisord [安装Supervisord] yum install epel-release yum install -y supervisor ...

  8. 【转】supervisord使用

    Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...

  9. 以supervisord启动elasticsearch

    1. 安装epel源 2. 安装supervisor yum -y install supervisor 3. 配置supervisord [program:elasticsearch] comman ...

  10. golang 程序部署及Supervisord deamon 运行

    此方法运行是基于supervisord的,系统为centos  64位 所以先安装相应的程序 第一步.首先执行  curl https://bootstrap.pypa.io/ez_setup.py ...

最新文章

  1. 解决 Visual Studio 2017 RC 不兼容低版本 Visual Studio 创建的 MVC 4 项目的问题
  2. 个人在iOS开发过程中真机调试遇到的问题及解决方法
  3. html图片重叠在一排,【CSS】使用浮动进行图片排列却不能使图片在同一行
  4. 由于超出容量限制_限制特高压系统中的过电压措施
  5. java 删除压缩zip文件_从ZIP存档中删除文件,而无需在Java或Python中解压缩 - java...
  6. 基于python语言下的UI自动化测试框架搭建(四)
  7. shell编程之进阶篇五函数
  8. 菜鸟学习笔记:Java提升篇11(Java动态性1——注解与反射)
  9. 监听mysql表内容变化 使用canal_2 监听mysql表内容变化,使用canal
  10. 生成图片_GitHub Star 3.2K Java 图片缩略图生成库
  11. 使用requests库发起gbk编码的get请求
  12. 如何优雅地送妹子礼物?
  13. AIX系统怎么更换服务器硬盘(mirrorvg)
  14. [分析力学]解题思路 - 拉格朗日方程
  15. Python 处理表格进行成绩排序的操作代码
  16. 『Java CVE』CVE-2022-34169: Xalan-J XSLT整数截断漏洞PoC结构再浅析
  17. 广义表((a,b),c,d)表头和表尾分别是什么?
  18. BASE64Encoded() 方法报错说方法未定义
  19. python之glob.glob
  20. Spacecube V1.0:适应多任务应用的可重构SpaceCube处理系统

热门文章

  1. 【JavaScript】延时器定时器使用
  2. docker golang buid rstp2webrtc
  3. 青云MR集群初步使用指南
  4. 0805的高频绕线电感有什么特征
  5. 腾讯云服务器简单搭建项目
  6. 中国计算机水平低是因为工程水平差
  7. 计算机和计算机之间如何传送文件,两台电脑实现互传文件:多种方法可选择
  8. 交叉编译ffmpeg+移植Hi3536板子
  9. python机械学习(一)
  10. 对数组名取地址 a[ ],a