What is supervisor

Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.

引用自supervisor官网,中文意思就是是一个C/S架构的系统,用来监控管理类UNIX系统上进程。

Features

简单,高效,可扩展,兼容性好(Orz,其实不能在windows上用)

想看更多请去官网

Installing

  1. 因为是用Python实现的,所以最简单的方式是pip install supervisor
  2. ubuntu系统上也可以直接使用sudo apt-get install supervisor

Configure

  • 使用 echo_supervisord_conf 就可以看到默认的配置文件,如下:
➜  Log echo_supervisord_conf
; Sample supervisor config file.
;
; For more information on the config file, please see:
; http://supervisord.org/configuration.html
;
; Notes:
;  - Shell expansion ("~" or "$HOME") is not supported.  Environment
;    variables can be expanded using this syntax: "%(ENV_HOME)s".
;  - Comments must have a leading space: "a=b ;comment" not "a=b;comment".
  • 配置文件

使用echo_supervisord_conf > /etc/supervisord.conf命令将配置文件保存在xx下面,然后修改配置文件。推荐的方式是将最后一行修改到某个固定文件夹,如下:

[include]
files = /etc/supervisord.d/*.ini

这样每次运行都会加载此目录下的配置文件,每个文件单独管理一个进程。而*.ini的内容一般如下:

配置1
[program:simpleserver]
command=python -m SimpleHTTPServer  # 执行的命令 ,若是虚拟环境则需要注意命令的路径,见配置2
directory=/home/wang/Downloads  # 执行命令的路径
user=wang  #  执行命令的用户
autorestart=true  # 出错后自动重启
redirect_stderr=true  # 错误日志重定向
stdout_logfile=/home/wang/Log/SimpleHTTPServer.log  # 日志的路径
loglevel=info  # 日志的级别
配置2
[program:hongbaoyun]
command=/home/wang/.virtualenvs/xxx-virtual-env/bin/python manage.py runserver 0.0.0.0:9999  # 此处python位置是virtualenv中python的位置
directory=/home/wang/Workspace/khb/hongbaoyun
user=wang

Run

  • 启动
    supervisord -c supervisord.conf # 指定配置文件启动supervisord

  • 启动spuervisordctl
    supervisordctl

  • supervisordctl常用命令

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  # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
  • 图行管理界面

在配置文件中去掉 [inet http server]的注释就可在浏览器中通过127.0.0.1:8000中看到图形管理界面

FAQ

  • 可能会出现 Unlinking stale socket /tmp/supervisor.sock 的错误,解决方式见 http://stackoverflow.com/questions/14479894/stopping-supervisord-shut-down, 是配置文件的问题

  • 开机自动启动,见 http://serverfault.com/questions/96499/how-to-automatically-start-supervisord-on-linux-ubuntu

Refer

  • http://www.restran.net/2015/10/04/supervisord-tutorial/ (很详细,推荐看)

  • http://supervisord.org/ (官网)

  • http://stackoverflow.com/questions/14479894/stopping-supervisord-shut-down

  • http://serverfault.com/questions/96499/how-to-automatically-start-supervisord-on-linux-ubuntu

转载于:https://www.cnblogs.com/wswang/p/5795766.html

supervisord安装使用简记相关推荐

  1. Anaconda安装keras简记

    一波三折的 keras keras 安装配置之路,花费了两天的时间,前后来回安装卸载了三次,特此总结一下,以防再次走弯路. 首先选择了Anaconda官网,因为我是win32的普通机器,只能选择32- ...

  2. laravel第三方插件列表

    必装插件 1. 记录Sql日志语句 Laravel Query Logger github地址注意,需要配置config/logging.php2. 简化查询 Laravel Query Builde ...

  3. 进程管理工具——Supervisord简介及安装

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

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

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

  5. supervisor安装部署和使用实例

    Supervisord是用Python实现的一款非常实用的进程管理工具,类似于monit,monit和supervisord的一个比较大的差异是supervisord管理的进程必须由superviso ...

  6. supervisord进程管理

    Supervisord Supervisord是一款基于Python的进程管理工具,当主机上存在多个的进程需要管理时,通过supervisor可以简化进程的管理. 再通过supervisor提供的rp ...

  7. Supervisord管理

    原文地址:http://blog.csdn.net/fyh2003/article/details/6837970 学习笔记 Supervisord可以通过sudo easy_install supe ...

  8. 在archlinux上搭建twitter storm cluster

    本文详细描述如何在archlinux上搭建twitter storm cluster,转载请注明出处,谢谢. 有关archlinux基本系统安装,请参照archlinux简明安装指南一文,下面以上述为 ...

  9. golang应用部署

    程序开发完毕之后,我们现在要部署Web应用程序了,但是我们如何来部署这些应用程序呢?因为Go程序编译之后是一个可执行文件,编写过C程序的读者一定知道采用daemon就可以完美的实现程序后台持续运行,但 ...

最新文章

  1. python推荐系统-利用python构建一个简单的推荐系统
  2. 0308互联网新闻 | 网易云音乐App上线小程序入口;谷歌为机器学习框架TensorFlow发新模块...
  3. Html5里frameSet不在使用的替代方法,使用ifram
  4. mysql的%rowtype_Oracle %TYPE 和 %ROWTYPE 使用
  5. 今天写了个查看 ABAP 类层级的程序
  6. 孙正义:一个有远见的赌徒
  7. C语言实现图片找茬,[创意心得]大家来找茬(C语言)
  8. 【Matlab符号积分和符号微分的实现方法】积分微分
  9. 0/0型极限等于多少_有限个极限运算及常见错误小结
  10. 将简体字转换成繁体字
  11. 计算udp校验和例子_UDP 协议校验和计算
  12. 当前比较流行的页面布局方式
  13. 天津达内可靠么 老员工揭秘真实的达内教育
  14. Lake Shore350型低温温度控制器
  15. 【数据结构】——顺序表介绍(独家介绍,小白必看!!)
  16. 51单片机(十二)—— 单片机复位
  17. iphone4s改装 linux,iPhone4S降级教程(支持iOS5.1.1)可实现完美越狱
  18. windows10映射网络驱动器教程、步骤(出现网络错误、浏览不能选择的解决办法)
  19. opencv打卡50:闭运算cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)
  20. python实现word文档批量转成自定义格式的excel文档

热门文章

  1. 安卓 camera 调用流程_安卓如何做出微信那样的界面仿微信“我”的界面1/5
  2. 十六、MySQL流程控制结构(顺序、分支、循环)详解 强化练习
  3. Chapter4-1_Speech_Synthesis(Tacotron)
  4. LeetCode 2131. 连接两字母单词得到的最长回文串
  5. LeetCode 1382. 将二叉搜索树变平衡(中序遍历+二分递归)
  6. horizon流程图_项目实施流程和规范模板(测试方向)
  7. 日期传递过程_买东西别再只看生产日期和保质期了!快算算你一天吃了多少添加剂?...
  8. 交换机的基本配置实验报告_无线网络设计配置即实验报告
  9. sklearn分类器性能评估
  10. PAT乙类1007之素数对猜想