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 来重新加载配置文件,否则不会生效。。。  

  • 相关阅读:
    es6异步编程 Promise 讲解 --------各个优点缺点总结
    js重新讲解继承,es5的一些继承,es6继承的改变 ----------由浅入深
    node.js里的buffer常见操作,copy,concat等实例讲解
    node.js 写流 createWriteStream----由浅入深
    node.js 读取文件--createReadStream
    Java的位运算符—— 与(&)、非(~)、或(|)、异或(^)
    XML的特殊字符处理
    mysql语句收藏
    MYSQL学习
    利用HTML5 LocalStorage实现跨页面通信channel
  • 原文地址:https://www.cnblogs.com/life_lt/p/6148359.html
Copyright © 2011-2022 走看看