码迷,mamicode.com
首页 > 系统相关 > 详细

后台进程管理工具---supervisor

时间:2015-07-28 00:59:08      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:supervisor   进程管理   守护进程   supervisorctl   

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

标签:supervisor   进程管理   守护进程   supervisorctl   

原文地址:http://blog.csdn.net/aspnet_lyc/article/details/47093153

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!