使用Supervisor3.2.1基于Mac10.10.3对系统进程进行管理

本文介绍了Supervisor,一个用Python编写的服务器管理工具,用于监控和管理系统的进程。详细讲解了Supervisor的特性、组件、安装方法,以及如何配置和使用Supervisord和Supervisorctl管理进程。通过配置文件和命令行工具,可以方便地启动、停止和监控进程,提升服务器管理效率。
摘要由CSDN通过智能技术生成

目录

一、基础知识

0.1、什么是Supervisor?


  Supervisor是由python语言编写的一款服务器管理工具,用以监控服务器的运行,发现问题能立即自动预警及自动重启等功能。可以运行在大多数类UNIX系统上,比如Linux、MAC OS X、Solaris、FreeBSD。
  除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 Supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
  Supervisor目前支持Python2.4以及之后的版本,但不支持Python3。
 

0.2、Supervisor的特性 


  • 简单

      Supervisor通过INI格式配置文件进行配置,很容易掌握,它为每个进程提供了很多配置选项,可以使你很容易的重启进程或者自动的轮转日志。
      

  • 统一

      Supervisor提供了一种统一的方式来start、stop、monitor你的进程,进程可以单独控制,也可以成组的控制。你可以在本地或者远程命令行或者web接口来配置Supervisor。
      

  • 有效

      Supervisor通过fork/exec启动它的子进程,子进程并不是守护进程。当一个进程终止的时候,操作系统会立即给Supervisor发送一个信号,而不是像其他解决方案依赖PID文件。
      

  • 可扩展 

      Supervisor包含一个简单的事件通知协议,因此任何程序都可以监控它,而且提供一个XML-RPC控制接口。
      

0.3、Supervisor有哪些组件? 


  • Supervisord

      服务会启动Supervisord服务,它负责调用自己启动子程序,响应来自客户端的命令,重启crash或者退出的进程,记录进程的输出信息,收集事件信息。该服务的配置文件在/etc/supervisor/supervisord.conf。
      

  • Supervisorctl 

      客户端的命令行工具,提供一个类shell接口,通过它你可以连接到不同的supervisord进程上来管理它们各自的子程序。客户端命令通过UNIX socket或者TCP来和服务通讯,服务端可以要求客户端提供身份验证之后才能进行操作([supervisorctl])。
        

  • Web Server 

      一个小的web接口被集成进了supervisorctl,重启supervisord之后就可以访问了([inet_http_server])。
      

  • XML-RPC Interface:

      就像HTTP提供WEB UI一样,同时还提供了XML-RPC接口来控制supervisor和由它运行的程序。

0.4、Supervisor的官网在哪里?

  http://supervisord.org/

0.5、如何安装?

  在官网中介绍 Supervisor 支持以下几种安装方法:

  • easy_install  
easy_install supervisor
  • pip
pip install supervisor
  • apt-get (Debian/Ubuntu)
apt-cache show supervisor
apt-get update
apt-get install supervisor
  • yum(CentOS)
yum info supervisor
apt-get install supervisor
  • brew(Mac OS)
➜ /Users/lion >brew install supervisor
==> Downloading > https://homebrew.bintray.com/bottles/supervisor-3.2.1.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring supervisor-3.2.1.yosemite.bottle.tar.gz
==> Caveats
To have launchd start supervisor at login:
  ln -sfv /usr/local/opt/supervisor/*.plist ~/Library/LaunchAgents
Then to load supervisor now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.supervisor.plist
Or, if you don't want/need launchctl, you can just run:
  supervisord -c /usr/local/etc/supervisord.ini
==> Summary
  /usr/local/Cellar/supervisor/3.2.1: 107 files, 1.3M

二、使用Supervisor对系统进程进行管理

0.1、Supervisord的配置文件

  在Mac下使用brew安装完以后,可以看到,文件是安装到了/usr/local/Cellar/supervisor/3.2.1目录下面。
  
  安装完以后,我们可以使用 echo_supervisord_conf 命令查看配置项,也可以将配置项保存到文件中

➜ /usr/local/Cellar/supervisor/3.2.1 git:(master)>echo_supervisord_conf > supervisord.ini

去掉注释和不相关的部分,我们可以看下配置文件的内容(部分注释被我修改过):

➜ /usr/local/Cellar/supervisor/3.2.1 git:(master)>cat supervisord.ini
[unix_http_server]
file=/usr/local/var/run/supervisor.sock ; UNIX socket 文件,supervisorctl 会使用
;chmod=0700                 ; socket 文件的 mode,默认是 0700
;chown=nobody:nogroup       ; socket的拥有者和组名
;username=user              ; 默认不需要登陆用户 (open server)
;password=123               ; 默认不需要登陆密码 (open server)

;[inet_http_server]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值