美文网首页
Supervisor备忘录

Supervisor备忘录

作者: 无敌小裤衩 | 来源:发表于2016-04-27 17:28 被阅读0次

    背景介绍

    很多人可能跟笔者一样,租了个阿里云或者服务器,然后偷摸搞点自己的博客或者什么的,怀着激动的心情把自己费了好多键盘和脑细胞的东西,传到服务器上,然后跑起来了, 又怀着同样激动的心情,邀来同寝室的小伙伴,让他们强势围观一把。

    然后,你想到SSH断了怎么办? 于是你拼命搜索找到了nohup,感觉很神奇。但想到要是服务因为某种异常挂掉了怎么办?自己写shell脚本?今天就为大家介绍这款神器Supervisor! 有了Supervisor,手也不酸了,头也不疼了,睡觉也更安心了!

    基本介绍

    Supervisor的介绍里面, 它强调自己特性的第一点就是Simple, 当然作为一款过硬的后台进程管理利器,Only simple is not enough! 所以Supervisor还有集中化管理,效率超高, 可扩展, 兼容性高,应用广泛等特性。

    Supervisor包括:

    • supervisord: 这是supervor的服务器端, 负责响应你的命令,启动子进程等里子应该做的dirty work.

    • supervisorctl:客户端,负责面子上的东西,比如跟你交互, 逗你玩儿等。

    安装

    • yum install supervisor


      yum.png
    • pip install supervisor

    pip.png

    什么? 说我不应该用root? 眼力不错!

    配置

    笔者的系统是CentOS, 所以配置文件在系统中的位置是/etc/supervisor.conf
    打开之后,一般是这样的。

    supervisor.conf

    比如你要用supervisor管理自己写的博客 blog.py
    [program:myblog] command=/app/pmweb27/bin/python /app/blog.py ;directory=/root ;user=root autostart=true stopsignal=QUIT stderr_logfile=/pushpmdata.err ; stderr log path, NONE for none; default AUTO stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50M

    command: 要运行的系统命令,因为我装了virtualenv,所以python的路径有点怪,自己配置时,改成相应的位置就可以。
    directory: 程序执行目录,因为我直接指定了文件的绝对路径,所以注释掉了。
    user: 指定程序运行账户,没有特殊需求可以不设置。
    autostart: 当supervisord启动时,自动执行command
    stderr_logfile: 错误日志存放位置。
    stderr_logfile_maxbytes:单个错误日志。

    运行

    如果supervisor.conf不是默认位置,可以用-c指定。
    supervord -c /etc/supervisor.conf
    当然,可以先用 service supervisord status命令查看supervisord运行状态。

    • supervisorctl -c /etc/supervisor.conf start myblog, 你的程序就可以在后台跑起来了
    • supervisorctl -c /etc/supervisor.conf restart myblog , 重启myblog
    • supervisorctl -c /etc/supervisor.conf stop myblog , 关闭myblog

    程序down了,supervisor会自动帮你重新启动,后面你就可以高枕无忧了。

    更多个性化设定你可以参考Supervisor官网

    PS:简书的Markdown做的还是挺不错的,推荐大家试试!

    相关文章

      网友评论

          本文标题:Supervisor备忘录

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