zoukankan      html  css  js  c++  java
  • Supervisor的安装与使用入门

    Supervisor是一个进程管理工具,官方的说法

    自己开发的应用往往也希望做到随系统自动启动, 而且启动之后最好还能方便的控制其停止/重启. 传统的做法是在 /etc/init.d/ 下建立启动脚本, 但这个方法非常繁琐, 容易出错, 而且不同服务器/不同版本的配置又有差异.

    通常需要借助一些辅助工具. 常用的管理工具有 runit, daemontools 以及用 Python 开发的 Supervisor. 其中以 Supervisor 最为易用, 功能也很完善.

    用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor

    这个工具主要就两个命令:

    supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令

    supervisorctl:启动supervisor的命令行窗口。

    安装(Centos):

    1. # yum install python-setuptools
    2. # easy_install supervisor
    3. 如果easy_install不好使就从官方下载:
    4. 然后通过python安装:
    5. # tar zxf supervisor-3.1.3.tar.gz
    6. # cd supervisor
    7. # python setup.py install

    成功安装后可以登陆python控制台输入import supervisor 查看是否能成功加载。

    生成配置文件(supervisord.conf):

    echo_supervisord_conf > /etc/supervisord.conf

    修改配置文件:

    在supervisord.conf最后增加(分号后边的表示注释,可以不写):

    1. [program:bandwidth]
    2. command=python26 /usr/local/bin/bandwidth.sh  ;需要执行的命令wd)
    3. user =root  ;(default  is  current  user , required  if  root)
    4. autostart=true  ;start at supervisord start (default: true)
    5. autorestart=true  ;whether/when to restart (default: unexpected)
    6. startsecs=3  ;number of secs prog must stay running ( def . 1)
    7. stderr_logfile=/tmp/bandwidth_err.log  ;redirect proc stderr to stdout (default false) 错误输出重定向
    8. stdout_logfile=/tmp/bandwidth.log  ;stdout log path, NONE  for  none; default AUTO, log输出
    9. (更多配置说明请参考:http://supervisord.org/configuration.html)

    运行命令:

    supervisord -c /etc/supervisord.conf  //启动supervisor

    supervisorctl //打开命令行

    1. [root @iZ2365j7l5bZ  bin]# supervisorctl status   
    2. bandwidth                        RUNNING   pid  2423 , uptime  0 : 06 : 35   
    3. [root @iZ2365j7l5bZ  bin]# supervisorctl help   
    4.   
    5. default  commands (type help <topic>):   
    6. =====================================   
    7. add    clear  fg        open  quit    remove  restart   start   stop  update    
    8. avail  exit   maintail  pid   reload  reread  shutdown  status  tail  version  

    ctl中: help //查看命令

    ctl中: status //查看状态

    另外有一个坑需要注意:如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。。  

  • 相关阅读:
    洛谷P5661 公交换乘(二分)
    洛谷P4047 [JSOI2010]部落划分(最小生成树)
    洛谷P2872 [USACO07DEC]Building Roads S(最小生成树)
    卸载重装VirtualBox回滚报错
    POJ1151 Atlantis(扫描线+线段树+离散化)
    QT入门-信号槽拓展
    Vue模板语法与常用指令总结
    Vue 生命周期
    querySelector和getElementById方法的区别
    ES6 Class(类)的继承与常用方法
  • 原文地址:https://www.cnblogs.com/life_lt/p/6148359.html
Copyright © 2011-2022 走看看