后台进程管理工具---supervisor
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的更多相关文章
- linux后台进程管理工具supervisor
Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启. su ...
- 进程管理工具supervisor
1. 简介 supervisor有两个组件:supervisord和supervisorctl,组成了client/server结构. supervisord负责读入配置文件,然后supervisor ...
- Linux进程管理工具Supervisor的安装配置
目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...
- linux 后台进程管理利器supervisor
Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启. ...
- Linux进程管理工具——supervisor
介绍 Supervisord是用Python实现的一款非常实用的进程管理工具 安装 这里用源码 supervisor-.tar.gz .tar.gz cd supervisor- sudo pytho ...
- Python 进程管理工具 Supervisor 使用教程
Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...
- linux 使用进程管理工具 supervisor
1.supervisor是使用python进行开发的运行在linux服务器上的进程管理工具 老版本的supervisor需要运行在python2环境,如果需要使用supervisor管理python3 ...
- python脚步管理工具supervisor=3.3.0的安装、使用。基于linux系统。
一.安装相关包 sudo apt-get install python-pip #python的安装包的工具 sudo apt-get install python-dev # ...
- 进程管理工具 Supervisor
要想在终端后台常驻进程,首先想到的是在命令后加 & 符号,来达到隐藏程序在后台的目的,尽管看起来进程已经在后台运行了,实际上终端会话关闭时进程还是会被 kill 掉,这种问题一般是采用搭配 n ...
随机推荐
- CAD参数绘制椭圆弧(网页版)
在CAD设计时,需要绘制椭圆弧,用户可以设置椭圆弧基本属性. 主要用到函数说明: _DMxDrawX::DrawEllipseArc 绘制椭圆弧.详细说明如下: 参数 说明 DOUBLE dCente ...
- tomcat修改编码格式
在TOMCAT中的conf文件夹下server.xml中的 <Connector中添加两个设置useBodyEncodingForURI="true" //设置POST和GE ...
- MSYS2 使用
在Windows下编译mongo-c-driver 1.3.x 在Windows下编译mongo-c-driver 1.3.x 1.安装 MSYS2https://sourceforge.net/pr ...
- python 读取文件生成嵌套列表
def read_data(file_name): if not re.findall(".txt", file_name): file_name += ".txt&qu ...
- log4j动态文件名
在项目中,对log的输出有多种多样的要求,下面具体分析一下动态log文件名输出的. 一,按照用户ID来生成log,这种情况,可以根据每个用户ID来动态生成logger. 代码如下: import or ...
- Volume 1. Maths - Misc
113 - Power of Cryptography import java.math.BigInteger; import java.util.Scanner; public class Main ...
- 创建Tensor
目录 创建Tensor numpy, list numpy list zeros, ones, fill zeros ones fill random 打乱idx后,a和b的索引不变 constant ...
- 【Python实践-10】用sorted()对列表排序
#按名字排序 l2= [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] def by_name(t): return t[0] l2=so ...
- [WPF自定义控件库]为Form和自定义Window添加FunctionBar
1. 前言 我常常看到同一个应用程序中的表单的按钮----也就是"确定"."取消"那两个按钮----实现得千奇百怪,其实只要使用统一的Style起码就可以统一按 ...
- this关键字的由来及使用
Student.java /* * 学生类 * * 起名字我们要求做到见名知意. * * 如果有局部变量名和成员变量名相同,在局部使用的时候,采用的是就近原则. * *我们有没有办法吧局部变量的nam ...