一、supervisor是什么

Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启。

supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

二、安装及使用

1.安装
pip install supervisor # supervisor目前只支持python2,但是作为容器来说,并不影响监控程序是python3的程序 2.生成配置文件
echo_supervisord_conf > supervisord.conf #在当前目录下生成 3.启动supervisor
supervisord -c supervisord.conf # -c 用来指定配置文件 4.其他常用命令
supervisorctl -c supervisord.conf # 启动命令行模式,命令行模式使用的配置文件注意一定要和启动supervisor时的配置文件一致
help : 帮助
update : 重新读取配置文件,并重启
restart all : 重启所有进程,不会重新读取配置文件
start all : 启动所有进程
start <name> : 启动某个进程
status : 获取所有进程信息
stop all : 停止所有进程
stop <name> : 停止某个进程

三、添加应用

常用配置, ; 代表注释

    ; ================================
; uwsgi supervisor
; ================================ [program:uwsgi] ; :后是自定义的名称,在supervisorctl下可以通过 start uwsgi 来启动该进程 command=/path/to/bin/uwsgi --die-on-term --ini /path/to/uwsgi.ini ; 执行的命令,即在命令行中是如何使用该命令的 --die-on-term keep uwsgi cpu rate low;
numprocs=1 ; 启动的进程个数,可以同时启动多个进程 stdout_logfile=/var/log/uwsgi/out.log ; 输出日志位置,目录需要创建,并且如果不是root用户执行需要更改目录权限 chown -R username:username /var/log/uwsgi/out.log,下同
stderr_logfile=/var/log/uwsgi/err.log ; 错误日志位置
autostart=true ; 自动启动
autorestart=true ; 自动重启
priority=997 ; 启动的优先级,数字越大,级别越高,如该进程需要比其他进程先启动,则优先级则设置为更高

四、更多

参考官方文档:http://www.supervisord.org

supervisor简明教程的更多相关文章

  1. 2013 duilib入门简明教程 -- 第一个程序 Hello World(3)

    小伙伴们有点迫不及待了么,来看一看Hello World吧: 新建一个空的win32项目,新建一个main.cpp文件,将以下代码复制进去: #include <windows.h> #i ...

  2. 2013 duilib入门简明教程 -- 部分bug (11)

     一.WindowImplBase的bug     在第8个教程[2013 duilib入门简明教程 -- 完整的自绘标题栏(8)]中,可以发现窗口最大化之后有两个问题,     1.最大化按钮的样式 ...

  3. 2013 duilib入门简明教程 -- 部分bug 2 (14)

        上一个教程中提到了ActiveX的Bug,即如果主窗口直接用变量生成,则关闭窗口时会产生崩溃            如果用new的方式生成,则不会崩溃,所以给出一个临时的快速解决方案,即主窗口 ...

  4. 2013 duilib入门简明教程 -- 自绘控件 (15)

        在[2013 duilib入门简明教程 -- 复杂控件介绍 (13)]中虽然介绍了界面设计器上的所有控件,但是还有一些控件并没有被放到界面设计器上,还有一些常用控件duilib并没有提供(比如 ...

  5. 2013 duilib入门简明教程 -- 事件处理和消息响应 (17)

        界面的显示方面就都讲完啦,下面来介绍下控件的响应.     前面的教程只讲了按钮和Tab的响应,即在Notify函数里处理.其实duilib还提供了另外一种响应的方法,即消息映射DUI_BEG ...

  6. 2013 duilib入门简明教程 -- FAQ (19)

        虽然前面的教程几乎把所有的知识点都罗列了,但是有很多问题经常在群里出现,所以这里再次整理一下.     需要注意的是,在下面的问题中,除了加上XML属性外,主窗口必须继承自WindowImpl ...

  7. Mac安装Windows 10的简明教程

    每次在Mac上安装Windows都是一件非常痛苦的事情,曾经为了装Win8把整台Mac的硬盘数据都弄丢了,最后通过龟速系统恢复模式恢复了MacOSX(50M电信光纤下载了3天才把系统下载完),相信和我 ...

  8. Docker简明教程

    Docker简明教程 [编者的话]使用Docker来写代码更高效并能有效提升自己的技能.Docker能打包你的开发环境,消除包的依赖冲突,并通过集装箱式的应用来减少开发时间和学习时间. Docker作 ...

  9. 2013 duilib入门简明教程 -- 总结 (20)

        duilib的入门系列就到尾声了,再次提醒下,Alberl用的duilib版本是SVN上第个版本,时间是2013.08.15~       这里给出Alberl最后汇总的一个工程,戳我下载,效 ...

随机推荐

  1. RYU改动监听port Mininet在custom自建拓扑和连接到指定控制器命令解释

    1.RYU控制器改动监听port 在ryu/ryu/ofproto以下的ofproto_common.py watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc ...

  2. 线程中调用Updatedata的问题

    随便发个自定义消息,然后在 CMyDialog的自定义消息处理函数中 UpdateDate().因为 UpdateDate用到了线程本地存储.不能跨线程的 UpdateData只能在主线程中使用,将U ...

  3. js如何获取手机的屏幕尺寸

    var width = $(document.body).outerWidth();//手机的屏幕宽 var height = $(window).innerHeight(); //手机的屏幕高

  4. session.use_cookies有什么作用,

    session.use_cookies有什么作用, @ini_set('session.use_cookies', 1);什么意思 若session.use_cookies = 1 sessionid ...

  5. linux SVN 安装配置

    svn服务器有2种运行方式 1.独立服务器 (例如:svn://xxx.com/xxx):2.借助apache.(例如:http://svn.xxx.com/xxx):为了不依赖apache,选择第一 ...

  6. Mac端博客发布工具推荐

    引子 推荐一款好用的 Mac 端博客发布工具. 下载地址 echo 博客对接 这里以cnblog为例.接入类型为metawebblog,access point可以在cnblog的设置最下边找到,然后 ...

  7. iTerm2常用的快捷键

    iTerm2 是 Mac 上面一款优秀的终端软件,配合 Oh My Zsh 一起使用,整个终端的体验会变得异常流畅和舒服.iTerm2 的颜值也是非常的高的,完全可以说秒杀 Mac 自带的终端软件.既 ...

  8. alsa 编程

    ALSA(Advanced Linux Sound Architecture)是由内核驱动,标准的API库和一系列实用程序组成.因为涉及到版权和BUG的问题Linux 2.6内核抛弃了旧的OSS,AL ...

  9. [Tyvj Aug11] 黄金矿工

    传送门 Description 黄金矿工是一个经典的小游戏,它可以锻炼人的反应能力.该游戏中,可以通过“挖矿”获得积分并不断升级.玩家可以在线玩flash版黄金矿工,也可以下载后玩单机版黄金矿工.目前 ...

  10. codeforces 664B B. Rebus(乱搞题)

    题目链接: B. Rebus time limit per test 1 second memory limit per test 256 megabytes input standard input ...