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. Zend Studio / Eclipse 缩进设置

    首先是Window – Preferences打开Preferences配置对话框: 然后依次找到PHP – Code Style – Formatter,如下图所示: 这里注意一下Active pr ...

  2. sqlite3接口简要说明

    本文介绍一下SQLite C/C++接口. 早期的SQLite C/C++接口只有5个接口函数, 很容易学习. 新版本的SQLite新增了很多功能, 目前大概有185个API接口.本文介绍一些核心的A ...

  3. jq进度条

    <!doctype html><html><head><meta charset="utf-8"><title>JQue ...

  4. MFC模拟鼠标点击

    MFC 工程 把以下代码放到你想要响应的函数里面就行 CPoint pt; GetCursorPos(&pt);//获取鼠标在屏幕的当前位置 SetCursorPos(100,200);//移 ...

  5. CSU 2018年12月月赛 G(2219): Coin

    Description 有这样一个众所周知的问题: 你面前有7个硬币,其中有一个劣质的(它比正常的硬币轻一点点),你有一个天平,问需要你需要使用天平多少次能保证找到那个劣质的硬币. 众所周知的算法是: ...

  6. 笔试算法题(45):简介 - AC自动机(Aho-Corasick Automation)

    议题:AC自动机(Aho-Corasick Automation) 分析: 此算法在1975年产生于贝尔实验室,是著名的多模式匹配算法之一:一个常见的例子就是给定N个单词,给定包含M个字符的文章,要求 ...

  7. centos7安装kvm虚拟机

    一 centos7安装kvm虚拟机 1.验证CPU是否支持KVM 结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的. [root@centos ~]# egrep '(vmx| ...

  8. 升级PHP7操作MongoDB

    前言 使用 PHP+MongoDB 的用户很多,因为 MongoDB 对非结构化数据的存储很方便.在 PHP5 及以前,官方提供了两个扩展,Mongo 和 MongoDB,其中 Mongo 是对以 M ...

  9. 又一个ajax实例,结合jQuery

    又一个ajax实例,配合jQuery   html <!DOCTYPE html> <html lang="zh-cn"> <head> < ...

  10. noip模拟赛 补兵

    分析:比较难想的一道dp题.要想补兵的数量最多,最后每个小兵的血量肯定是呈一个阶梯状的:i,i+1,i+2......i+k.那么记录一下每个血量i离它最近的小兵的血量是多少,记作cur[i].那么把 ...