美文网首页
supervisor进程管理

supervisor进程管理

作者: Uncle阳 | 来源:发表于2017-06-22 00:28 被阅读374次

    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是用Python实现的一款非常实用的进程管理工具。supervisord会帮你把管理的应用程序转成daemon程序,而且可以方便的通过命令开启、关闭、重启等操作,而且它管理的进程一旦崩溃会自动重启,这样就可以保证程序执行中断后的情况下有自我修复的功能。


    supervisor安装

    mac: brew install supervisor
    centos:sudo pip install supervisor
    ubuntu:sudo apt-get install supervisor


    supervisord配置

    使用echo_supervisord_conf查看默认配置
    使用echo_supervisord_conf > /etc/supervisord.conf命令将配置文件保存在xx下面,然后修改配置文件。
    

    推荐的方式是将最后一行修改到某个固定文件夹,如下:

    [include]
    files = /etc/supervisord.d/*.ini
    
    # 这样每次运行都会加载此目录下的配置文件,每个文件单独管理一个进程。而*.ini的内容一般如下:
    
    配置1
    [program:server1]
    command=python -m server1  # 执行的命令
    directory=/home/me/bin  # 执行命令的路径
    user=uncle              # 执行命令的用户
    autorestart=true        # 出错后自动重启
    redirect_stderr=true    # 错误日志重定向
    stdout_logfile=/home/uncle/log/server1.log  # 日志的路径
    loglevel=info  # 日志的级别
    
    配置2
    [program:server2]
    command=php server2
    directory=/home/me/bin
    user=uncle
    

    supervisord启动

    supervisord -c supervisord.conf # 指定配置文件启动supervisord
    supervisordctl  # 启动spuervisordctl
    
    service supervisord restart # 重启supervisord服务
    
    $supervisorctl shutdown # 关闭服务
    $supervisorctl reload # 重新载入配置
    

    另外在启动时遇到了比较诡异的错误:

    $ sudo service supervisord start
    Starting supervisord: Traceback (most recent call last):
      File "/usr/bin/supervisord", line 2, in <module>
        from supervisor.supervisord import main
    ImportError: No module named supervisor.supervisord
    

    具体是Python版本问题,在一篇日本博客中有相应答案:
    墙外博客地址: AmazonLinuxでsupervisorをyumインストールする
    ps:不要问我为什么能看懂日文,如果你用心,也是可以的~

    相关文章

      网友评论

          本文标题:supervisor进程管理

          本文链接:https://www.haomeiwen.com/subject/vnkxcxtx.html