supervisor - Python进程管理工具
经常会碰到要写一些守护进程,简单做法放入后台:
shell> nohup python xxx.py &
偶尔这么做还可以接受,如果一堆这样的呢?
当然还有一个问题,就是各种服务,对应的命令或者路径都不太一致,比如Apache、MySQL或者其他自行编译的工具。
如果可以统一管理这些应用,是不是很哈皮?
按照惯例现Google一把,不失所望找到一个神奇的利器。supervisor!
supervisor地址:http://supervisord.org,官方标语就是:一个进程管理工具。
安装:
sudo aptitude install supervisor # pip/easy_install
下面这种方式也可以:
easy_install supervisor
也可以通过其他包管理来安装,比如apt/yum等。
安装好以后,有两个可执行文件和一个配置文件(平台差异,可能路径不一致):
/usr/bin/supervisord -- supervisor服务守护进程
/usr/bin/supervisorctl -- supervisor服务控制程序,比如:status/start/stop/restart xx 等
/etc/supervisor/supervisord.conf -- 配置文件,定义服务名称以及接口等等
/etc/supervisord.conf 如果没有,可以使用如下语句生成:
echo_supervisord_conf > supervisord.conf
下面来一个示例,用web.py写一个hello的程序:
这个时候可以直接启动这个程序了,下面来配置supervisor,加入管理。修改supervisord.conf,加入如下片段:
[program:hello]
command=python /home/smallfish/hello.py
autorstart=true
stdout_logfile=/home/smallfish/hello.log
上面的意思应该很容易懂,program后面跟服务的名称,command是程序的执行路径,autorstart是表示自动启动,stdout_logfile是捕获标准输出。
到这里,基本搞定了,下面就是启动管理:
shell> supervisord -- 启动supervisor服务
shell> sudo supervisorctl status hello -- 获取hello服务的状态,因为是autorstart,这里已经启动了 hello
RUNNING pid 1159, uptime :20:32
shell> sudo supervisorctl stop hello -- 停止hello服务
hello: stopped
shell> sudo supervisorctl stop hello -- 再次停止hello,会有错误信息
hello: ERROR (not running)
shell> sudo supervisorctl start hello -- 启动hello服务 hello: started
OK,基本的操作就是类似这个了,仔细看supervisord.conf文件里会发现有一段[inet_http_server]的配置,默认是9001端口,可以输入用户名和密码,主要用于Basic Auth认证用的。
修改后的样子:
[inet_http_server] ; inet (TCP) server disabled by default
port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
username=user ; (default is no username (open server))
password=123 ; (default is no password (open server))
填写一下,然后重启supervisor服务
killl -HUP <supervisor的pid>
打开浏览器输入:http://localhost:9001,如图:
supervisor - Python进程管理工具的更多相关文章
- supervisor - Python进程管理工具(转)
add by zhj: 下面是在ubuntu上的一些使用经验 1. 简介 supervisor有两个组件:supervisord和supervisorctl,组成了client/server结构. s ...
- Python 进程管理工具 Supervisor 使用教程
Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...
- python进程管理工具Supervisor
一.Supervisor简单介绍 supervisor是一个 Client/Server模式的系统,允许用户在类unix操作系统上监视和控制多个进程,或者可以说是多个程序.supervisor与lau ...
- supervisor:进程管理工具
一,安装(任何一种方式) apt-get install supervisor easy_install supervisor pip install supervisor 二,配置 配置superv ...
- 进程管理工具supervisor
1. 简介 supervisor有两个组件:supervisord和supervisorctl,组成了client/server结构. supervisord负责读入配置文件,然后supervisor ...
- supervisor python开发的进程管理工具
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...
- Linux进程管理工具——supervisor
介绍 Supervisord是用Python实现的一款非常实用的进程管理工具 安装 这里用源码 supervisor-.tar.gz .tar.gz cd supervisor- sudo pytho ...
- linux 使用进程管理工具 supervisor
1.supervisor是使用python进行开发的运行在linux服务器上的进程管理工具 老版本的supervisor需要运行在python2环境,如果需要使用supervisor管理python3 ...
- Supervisor安装与配置(Linux/Unix进程管理工具)
原文链接:http://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyth ...
随机推荐
- php 基础复习 2018-06-18
(1)cookie相关 cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie. 如何创建 cookie? se ...
- 删除字符串中的"\U0000fffc"数据 textView添加图片 以及添加后属性失效的解决
背景:在实现textView的富文本时,如果添加一张图片后,如果直接发送textView的内容时,图片会被字符串“\U0000fffc”替换. 问题:如何删除“\U0000fffc”字符串:如何替换t ...
- ubuntu-12.04下安装postgresql
2013-10-01 20:42:57| moniter参考资料:Ubuntu 12.04下PostgreSQL-9.1安装与配置详解(在线安装)一.安装postgresqlbamboo@bam ...
- P3366 最小生成树【模板】 洛谷
https://www.luogu.org/problem/show?pid=3366 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包 ...
- Topcoder 2015_1C
A:大水题; B:求一颗树中,有多少条路径 不存在路径中一点是另外一点的祖先,(后面废话说了很多) 其实一个点 可以到它本身也可以是一条路径结论是:统计叶子的节点.(真简单粗暴 C:题目不说,说也说不 ...
- PostgreSQL 9.3.1 中文手册(解决关键词报错的问题)
http://www.postgres.cn/docs/9.3/sql-keywords-appendix.html
- CDI Services *Decoretions *Intercepters * Scope * EL\(Sp EL) *Eventmodel
1.Decorators装饰器综述 拦截器是一种强大的方法在应用程序捕捉运行方法和解耦.拦截器可以拦截任何java类型的调用. 这使得拦截器适合解决事务管理,安全性,以及日记记录. 本质上说,拦截 ...
- O2O助汪峰成功逆袭,汪峰最终上头条了
8月2日七夕情人节,汪峰<峰暴来临>演唱会在鸟巢10万人体育场唱响,各大报纸.站点娱乐板块并没有等来汪峰向国际章求婚的"头条",只是,与乐视合作现场演出+付费直播的O2 ...
- 浏览器websocket
使用浏览器,PHP 来构建的应用,发现都是每次浏览器发送一次http 请求,PHP 回一个响应. 这样,后端的PHP 在处理多次http请求是,每次都是不同的进程在处理. 这就加大了开销, 而且,PH ...
- web.xml中的ServletContextListener
要想了解ServletContextListener,先看看web.xml中的<listener>配置. 一)web.xml中的内容载入顺序: 首先能够肯定的是,载入顺序与它们在 web. ...