• Linux进程管理工具 Supervisord 的安装 及 入门教程


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

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

    主要就两个命令:

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

    安装(CentOS):

    方式一:

    yum -y install python-setuptools
    easy_install supervisor

    方式二:

    如果 easy_install 不好使就从官方下载:

    wget https://pypi.python.org/packages/source/s/supervisor/supervisor-3.1.3.tar.gz

    然后通过 python 安装:

    tar zxf supervisor-3.1.3.tar.gz
    cd supervisor
    python setup.py install
    

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

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

    echo_supervisord_conf > /etc/supervisord.conf

    修改配置文件:

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

    [program:bandwidth]
    command=python26 /usr/local/bin/bandwidth.sh  ;需要执行的命令wd)
    user=root  ;(default is current user, required if root)
    autostart=true  ;start at supervisord start (default: true)
    autorestart=true  ;whether/when to restart (default: unexpected)
    startsecs=3  ;number of secs prog must stay running (def. 1)
    stderr_logfile=/tmp/bandwidth_err.log  ;redirect proc stderr to stdout (default false) 错误输出重定向
    stdout_logfile=/tmp/bandwidth.log  ;stdout log path, NONE for none; default AUTO, log输出

    (更多配置说明请参考:http://supervisord.org/configuration.html

    运行命令:

    启动 supervisor

    supervisord -c /etc/supervisord.conf

    打开命令行

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

    ctl中: help // 查看命令

    ctl中: status // 查看状态

    特别注意:

    如果修改了 /etc/supervisord.conf,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。。

    常用命令:

    • supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
    • supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:beepkg]里配置的值,这个示例就是beepkg。
    • supervisorctl start programxxx,启动某个进程
    • supervisorctl restart programxxx,重启某个进程
    • supervisorctl stop groupworker: ,重启所有属于名为groupworker这个分组的进程(start,restart同理)
    • supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
    • supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
    • supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。

      

    实例:Supervisord 管理 beego 系统

    1. 修改配置 /etc/supervisord.conf

      [include]
      files = /etc/supervisord.conf.d/*.conf
    2. 新建管理的应用

      cd /etc/supervisord.conf.d
      vim beepkg.conf

      配置文件:

      [program:beepkg]
      directory = /opt/app/beepkg
      command = /opt/app/beepkg/beepkg
      autostart = true
      startsecs = 5
      user = root
      redirect_stderr = true
      stdout_logfile = /var/log/supervisord/beepkg.log
  • 相关阅读:
    Javascript模块化开发2——Gruntfile.js详解
    Javascript模块化开发1——package.json详解
    数据库性能优化策略
    HTTP协议学习笔记
    Redis五种基本数据类型底层实现
    浅谈单元测试
    Lambda 表达式有何用处?如何使用?
    快捷键和常用的命令
    Homebrew安装和Mac使用
    为什么String要设计成不可变的?
  • 原文地址:https://www.cnblogs.com/52php/p/6426775.html
Copyright © 2020-2023  润新知