美文网首页
ubuntu中supervisor的安装及配置

ubuntu中supervisor的安装及配置

作者: wwmin_ | 来源:发表于2018-06-14 23:48 被阅读625次

    supervisor是一款很好用的进程管理工具,其命令也很简单,其安装过程如下:
    ubuntu16:
    首先保证本地的python环境是ok的,且python是2.x版本的,如有多个版本需要切换到2.x,参考ubuntu中切换python版本
    supervisor安装

    ubuntu安装: 
    sudo apt-get install supervisor 
    centos安装: 
    yum install -y supervisor 
    基于python库安装
    pip2 install supervisor
    easy_install supervisor
    

    安装好之后,不出问题的话supervisor服务已经启动完成。
    配置文件在/etc/supervisor/conf.d/路径下,
    supervisor管理进程的配置文件,这里就简单举例:

    [program:task]                                       #管理进程的命名
    command=python test.py  -c test.conf          #执行的命令
    stderr_logfile=/var/log/supervisor/test.log      #错误日志输出路径
    stdout_logfile=/var/log/supervisor/test.log      #日志输出路径
    directory=/root/test                    #命令执行的工作空间
    autostart=true                       #自动启动
    user=root                          #指定用户
    autorestart=true                      #自动重启</pre>
    

    进程配置文件配好之后,然后执行:

    supervisorctl reload
    

    至此配置基本完成,进程也启动起来了。
    supervisor有supervisord和supervisorctl两种命令类型,supervisord是服务相关的命令,supervisorctl是客户端相关的命令,它们的使用方法很简单.

    查看supervisorctl和启动子进程方式

    supervisorctl status #查看supervisorctl状态
    supervisorctl start nginx #启动子进程nginx
    supervisorctl stop nginx  #关闭子进程nginx
    supervisorctl restart nginx #重启子进程nginx
    
    Supervisor管理进程状态转换图
    Supervisor管理进程状态转换图

    说明:
    running:进程处于运行状态
    starting:Supervisor 收到启动请求后,进程处于正在启动过程中
    stopped:进程处于关闭状态
    stopping:Supervisor 收到关闭请求后,进程处于正在关闭过程中
    backoff:进程进入 starting 状态后,由于马上就退出导致没能进入 running 状态
    fatal:进程没有正常启动
    exited:进程从 running 状态退出

    常用命令:
    supervisorctl start programxxx,启动某个进程
    supervisorctl restart programxxx,重启某个进程
    supervisorctl stop groupworker: ,重启所有属于名为groupworker这个分组的进程(start,restart同理)
    supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
    supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
    supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
    supervisor启动和停止的日志文件存放在/var/log/supervisor/supervisord.log
    注意:显式用stop停止掉的进程,用reload或者update都不会自动重启

    常见报错:

    Traceback (most recent call last):
      File "/usr/local/bin/supervisorctl", line 7, in <module>
        from supervisor.supervisorctl import main
      File "/usr/local/lib/python2.7/dist-packages/supervisor/supervisorctl.py", line 36, in <module>
        from supervisor.options import ClientOptions
      File "/usr/local/lib/python2.7/dist-packages/supervisor/options.py", line 26, in <module>
        from supervisor.datatypes import process_or_group_name
    ImportError: cannot import name process_or_group_name #这是在执行supervisor相关命令报的错,基本可以看出是安装的问题 
    #解决方式 
    easy_install  supervisor
    
    root@ubuntu:~# supervisorctl
    unix:///var/run/supervisor.sock no such file
    supervisor> 
    #这有可能是由于supervisor服务没有启动 #解决办法
    service  supervisor  start
    
    error: <class ‘socket.error’>, [Errno 2] No such file or directory: file:/usr/lib/python2.7/socket.py line: 224
    
    #错误原因可能是 supervisor 服务未启动 #解决办法   service  supervisor  start 
    
    #也有可能是配置文件中没有指定用户 #解决办法 
    进入/etc/supervisor/conf.d
    找到指定的配置文件,加入  user=root
    

    相关文章

      网友评论

          本文标题:ubuntu中supervisor的安装及配置

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