• 按需讲解之Supervisor


    Supervisor是一个进程监控程序。

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

    先弄懂两个命令:

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

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

    需求:redis-server这个进程是运行redis的服务。我们要求这个服务能在意外停止后自动重启。

    安装(Centos):

    yum install python-setuptools

    easy_install supervisor

    测试是否安装成功:

    echo_supervisord_conf

    创建配置文件:

    echo_supervisord_conf > /etc/supervisord.conf

    修改配置文件:

    在supervisord.conf最后增加:

    [program:redis]

    command = redis-server   //需要执行的命令

    autostart=true    //supervisor启动的时候是否随着同时启动

    autorestart=true   //当程序跑出exit的时候,这个program会自动重启

    startsecs=3  //程序重启时候停留在runing状态的秒数

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

    运行命令:

    supervisord    //启动supervisor

    supervisorctl   //打开命令行

    [root@vm14211 ~]# supervisorctl
    redis                            RUNNING    pid 24068, uptime 3:41:55

    ctl中: help   //查看命令

    ctl中: status  //查看状态

    遇到的问题:

    1 redis出现的不是running而是FATAL 状态

    应该要去查看log

    log在/tmp/supervisord.log

    2 日志中显示:

    gave up: redis entered FATAL state, too many start retries too quickly

    修改redis.conf的daemonize为no

    具体说明:http://xingqiba.sinaapp.com/?p=240

    事实证明webdis也有这个问题,webdis要修改的是webdis.json这个配置文件

    完成验证:

    1 ps aux | grep redis

    [root@vm1~]# ps aux | grep redis
    root     30582  0.0  0.0   9668  1584 ?        S    14:12   0:00 redis-server

    2 kill 30582

    3

    [root@vm1 ~]# ps aux | grep redis
    root     30846  0.0  0.0   9668  1552 ?        S    15:19   0:00 redis-server

    看到这个时候pid更新了。

    完成,庆祝。

      ----------------------

    作者:yjf512(轩脉刃)

    出处:http://www.cnblogs.com/yjf512/

    本文版权归yjf512和cnBlog共有,欢迎转载,但未经作者同意必须保留此段声明

    实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

    本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    反转链表
    《Java JDK7 学习笔记》课后练习题1
    《Java JDK7 学习笔记》课后练习题2
    《java JDK7 学习笔记》课后练习题3
    SQL与NoSQL(关系型与非关系型)数据库的区别
    编程中编码的来源及发展
    JDK7学习笔记之基础类型
    《java JDK7学习笔记》之跨平台与路径设置
    《java jdk7学习笔记》之java三大平台
    VS2015安装之后加装SQL SERVER2014的步骤
  • 原文地址:https://www.cnblogs.com/yjf512/p/2380496.html
Copyright © 2020-2023  润新知