supervisor是一个linux下的进程管理工具,有时须要开发一些后台服务类的程序。这类程序通常不能由于意外挂掉。所以最好能在出现意外挂掉的情况下可以重新启动,继续服务。

之前我一直採用创建daemon,即守护进程的方式来实现,再通过其它进程监控,近期发现了这个后台进程管理神器。通过supervisor,可以将命令行的控制台程序轻松变为daemon,而且在意外挂掉时,supervisor可以自己主动帮我们重新启动。

系统环境 ubuntu14.04,其它发行版linux安装配置大体同样

以下以一个小样例展示supervisor的简单使用

如果我们在/root/test文件夹下,要运行一个test.py文件,并希望它成为守护进程在后台运行,而且在挂掉时可以被即时重新启动,尽可能的继续服务。

首先安装supervisor

sudo apt-get install supervisor

也能够通过pip安装

pip install supervisor

也可通过easy_install

easy_install supervisor

配置

进入/etc/supervisor/conf.d文件夹

加入一个test.conf配置文件来配置我们的进程

[program:test]
command=python test.py
directory=/root/test
autorestart=true
user=root

当中[program:test]指定了该配置的名字,即后面通过supervisorctl start [配置进程名] 中的配置进程名

command指定了运行的命令,这里是一个python文件。我们通过python test.py运行

directory制定了test.py文件所在的路径

autorestart指定进程意外终止时可以被重新启动

user指定了执行该程序的用户

你也能够直接将上面的配置直接写入到/etc/supervisor/supervisord.conf文件里,效果与上面一致。

重载配置文件

增加配置文件之后,我们须要让supervisor又一次读取配置文件,以便我们的配置可以生效

supervisorctl update

删除配置文件,也要运行 supervisorctl update

启动进程

supervisorctl start test

当中test即为配置中写入的[program:test]。该命令的效果与python test.py一致,仅仅是让其以守护进程方式执行,而且进程意外终止时会被supervisor重新启动

因为在配置文件里。指定了该进程意外终止会被重新启动。因此我们不能通过杀掉该进程的方法来结束进程。而是通过supervisor

终止进程

supervisorctl stop test

重新启动进程

supervisorctl restart test

很多其它关于supervisor的内容能够參考官方文档 http://supervisord.org/

后台进程管理工具---supervisor的更多相关文章

  1. linux后台进程管理工具supervisor

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

  2. 进程管理工具supervisor

    1. 简介 supervisor有两个组件:supervisord和supervisorctl,组成了client/server结构. supervisord负责读入配置文件,然后supervisor ...

  3. Linux进程管理工具Supervisor的安装配置

    目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...

  4. linux 后台进程管理利器supervisor

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

  5. Linux进程管理工具——supervisor

    介绍 Supervisord是用Python实现的一款非常实用的进程管理工具 安装 这里用源码 supervisor-.tar.gz .tar.gz cd supervisor- sudo pytho ...

  6. Python 进程管理工具 Supervisor 使用教程

    Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...

  7. linux 使用进程管理工具 supervisor

    1.supervisor是使用python进行开发的运行在linux服务器上的进程管理工具 老版本的supervisor需要运行在python2环境,如果需要使用supervisor管理python3 ...

  8. python脚步管理工具supervisor=3.3.0的安装、使用。基于linux系统。

    一.安装相关包 sudo apt-get install python-pip       #python的安装包的工具 sudo apt-get install python-dev       # ...

  9. 进程管理工具 Supervisor

    要想在终端后台常驻进程,首先想到的是在命令后加 & 符号,来达到隐藏程序在后台的目的,尽管看起来进程已经在后台运行了,实际上终端会话关闭时进程还是会被 kill 掉,这种问题一般是采用搭配 n ...

随机推荐

  1. JavaSE-22 反射

    学习要点 反射概念 反射的应用 反射概述 1  反射机制 定义 Java反射机制是指在程序在运行状态中,动态获取信息以及动态调用对象方法的功能. Java反射的动态性质:运行时生成对象实例.运行期间调 ...

  2. XP禁用了U盘和移动硬盘方法

    会不会是你XP禁用了U盘和移动硬盘下面这些是任何禁用U盘的!你自己反着试下嘛!方法一,BIOS设置法(快刀斩乱麻法) 进入BIOS设置,选择“Integrated Peripherals”选项,展开后 ...

  3. python Matplotlib 系列教程(三)——绘制直方图和条形图

    在本章节我们将学习如何绘制条形图和直方图 条形图与直方图的区别:首先,条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的: 直方图是用面积表示各组频数的多少,矩形的高度表示每一组的 ...

  4. 路径工具类NSPathUtilities

    路径工具类NSPathUtilities.h 路径类NSPathUtilities.h包含了 NSString的函数和分类扩展,他允许你操作路径名.应该竟可能的使用这些函数,以便使程序更独立于文件系统 ...

  5. centos6 rpm安装mysql(5.5版本)包括 error : Failed dependencies:libaio的解决办法.

    1.先在/opt目录下放了两个rpm包 2.先看系统中是否有其他版本的mysql的rpm包 rpm -qa | grep -i mysql 命令结果如下图: 如果没有此步跳过,否则执行一下命令将其删除 ...

  6. Layui表格之多列合并展示

    前言: 当我们在使用Layui的时候,有时表格中的列比较多,展示出来肯定是有问题的,这样就不得不舍弃一些列不展示,不展示是一种解决方案,但是更好的解决方案应该是合并展示. 这里的展示不是合并单元格,合 ...

  7. ORM之单表增删改查

    ORM之单表增删改查 在函数前,先导入要操作的数据库表模块,model from model所在的路径文件夹 import model   在views文件中,加的路径: #就一个app01功能的文件 ...

  8. Python Pandas库的学习(一)

    今天我们来学习一下Pandas库,前面我们讲了Numpy库的学习 接下来我们学习一下比较重要的库Pandas库,这个库比Numpy库还重要 Pandas库是在Numpy库上进行了封装,相当于高级Num ...

  9. 【06】对AJAX的总结(转)

    对AJAX的总结   通过前面对 AJAX 的讲解,我们可以将 AJAX 请求分成以下几个步骤: 创建 XMLHttpRequest 对象: 设置事件处理函数,处理返回的数据: 初始化并发送请求. 可 ...

  10. URAL 1297 求最长回文字符串

    有种简单的方法,数组从左到右扫一遍,每次以当前的点为中心,只要左右相等就往左右走,这算出来的回文字符串是奇数长度的 还有偶数长度的回文字符串就是以当前扫到的点和它左边的点作为中心,然后往左右扫 这是O ...