supervisor process management
supervisor是unix like系统的进程管理工具
安装:
pip install supervisor
配置文件:
echo_supervisord_conf # 打印一个配置文件样例
echo_supervisord_conf > /etc/supervisord.conf # 在/etc目录生成配置文件
编辑配置文件supervisord.conf,取消include部分注释,修改files配置项指向的路径
[include]
files = /etc/supervisor/*.conf # /an/absolute/filename.conf /an/absolute/*.conf foo.conf config??.conf # 使用这个部分可以将不同的配置文件拆分
创建单独的程序配置文件:
mkdir /etc/supervisor # 建立另一个文件夹,用于放置配置文件
cd /etc/supervisor
touch test.conf
在test.conf写入下面的配置信息,可以在一个文件配置多个程序,也可以将多个程序分在不同文件:
[program:test]
; 程序文件的目录
directory=/home/think/
; 运行程序的命令
command=python test.py
user=think # 用户名
;下面部分先不用管
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=TERM
stopasgroup=true
[program:celery_producer_consumer_res]
directory=/home/buxizhizhoum/1-Work/2-Codes/celery/producer_consumer
command=python producer_consumer.py -app %(process_num)s
numprocs=1
numprocs_start=10
process_name=%(program_name)s_%(process_num)s
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/tmp/%(program_name)s_%(process_num)s.log
stdout_logfile_maxbytes=20MB
stdout_logfile_backups=1
在上面配置文件的directory项指定的目录,新建test.py文件,写入要运行的程序,此处写入的示例程序为:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import datetime
import time
import sys while True:
print >>sys.stdout, datetime.datetime.now() # 只使用print不会在后续使用supervisorctl tail命令时显示程序输出
sys.stdout.flush()
time.sleep(1)
启动:
supervisord
or
supervisord -c /filename/of/your/config/file.conf
这时如果配置正确,配置文件中配置的进程应该已经启动
查看:
supervisorctl status
log在/tmp/supervisord.log
其它:
supervisorctl stop <program name> # stop program
supervisorctl start <program name>
supervisorctl reload <program name> # 重新加载配置
supervisorctl tail <program name> # 获取程序输出,print的输出不会被获取,只输出sys.stdout, sys.stderr
管理一组程序:
[group:celery_task_summary]
;programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions
programs=celery_tasks ; each refers to 'x' in [program:x] definitions
;priority=
supervisorctl update
supervisorctl restart celery_task_summary: # 重启程序组
supervisorctl restart celery_task_summary:celery_tasks # 重启程序组里面的一个, 添加程序组后 supervisorctl restart celery_tasks 已经不能使用
网页监控:
在之前的配置文件中下面两行的注释取消:
[inet_http_server]
port=127.0.0.1:
使用浏览器访问 http://127.0.0.1:9001

supervisor process management的更多相关文章
- Java Business Process Management(业务流程管理) 初识环境搭建
一.简介 (一)什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易 ...
- Performance Tuning Using Linux Process Management Commands
[root@bigdata-server-02 /]# ps --help all Usage: ps [options] Basic options: -A, -e all processes -a ...
- Linux Process Management && Process Scheduling Principle
目录 . 引言 . 进程优先级 . 进程的生命周 . 进程表示 . 进程管理相关的系统调用 . 进程调度 . 完全公平调度类 . 实时调度类 . 调度器增强 . 小结 1. 引言 在多处理器系统中,可 ...
- <<Linux kernel development>> Process Management
The Process On modern operating systems,processes provide two virtualizations:a virtualized processo ...
- linux process management
CREAT PROCESS fork() | clone(參数,决定父子函数的共享内容) | do_fork() | copy_process() | dup_task_struct() 创建子进程的 ...
- csharp:workflow and bpm(Business Process Management)
http://ccflow.codeplex.com/ http://winwf.codeplex.com/ http://nginn.codeplex.com/ https://github.com ...
- Process management of windows
igfxem.exe进程是正常的进程.是intel家的核显驱动类的进程.核显即"核芯显卡",是指GPU部分它是与CPU建立在同一内核芯片上,两者完全融合的芯片."核芯显卡 ...
- Project Management Process
Project Management ProcessDescription .............................................................. ...
- supervisor:How is this different from daemontools ?
"daemontools has too much focus on security as opposed to being a process manager for my taste. ...
随机推荐
- Scrapy学习篇(四)之数据存储
上一篇中,我们简单的实现了toscrapy网页信息的爬取,并存储到mongo,本篇文章信息看看数据的存储.这一篇主要是实现信息的存储,我们以将信息保存到文件和mongo数据库为例,学习数据的存储,依然 ...
- base_基础
目录 A B C D E F G H I J K L M N S: Sqlite: 1;orhanobut/hawk; A: Adapter: 图片处理 Android中自定义布局中加载图片Bitma ...
- [UE4]场景截图
要点: 一.鼠标在编辑器关卡中点一下,然后按F9键截图,右下角会出现截图后的文件链接,点击后会自动打开截图文件所在的文件夹.截图的大小正好的关卡视图的大小. 编辑器:F9键截图,只截图关卡视图界面 运 ...
- [UE4]Lock Always
创建一个Widget加到视图,指定为鼠标焦点,并显示鼠标 Lock Always:叫鼠标锁定在游戏窗口内.
- RHEL6安装配置DNS服务
RHEL6安装配置DNS服务 作者:Eric 微信:loveoracle11g 安装软件包 [root@rac1 ~]# yum -y install bind bind-chroot caching ...
- SqlServer存储过程输出参数
if exists(select 1 from sysobjects where name='P_PreOrderInfo') drop Procedure P_PreOrderInfo go Cre ...
- cocos源码分析--RenderTexture
cocos中RenderTexture主要用来实现截屏,然后把截取出来的图片保存到磁盘中,除了保存图片和渲染纹理,它还可以得到一些预渲染结果,并将这些结果作为一种纹理数据. 例如我们可以用RGB5_A ...
- Spark2.X集群运行模式
rn 启动 先把这三个文件的名字改一下 配置slaves 配置spark-env.sh export JAVA_HOME=/opt/modules/jdk1..0_60 export SCALA_HO ...
- for循环中进行联网请求数据、for循环中进行异步数据操作,数据排序错乱问题解决;
for循环中进行联网请求数据,由于网络请求是异步的,第一个网络请求还没有回调,第二次第三次以及后续的网络请求又已经发出去了,有可能后续的网络请求会先回调:这时我们接收到的数据的排序就会错乱:怎么才能让 ...
- Centos7 开放80,3306端口解决办法
所有扯iptables的文章都是扯淡!!! centos 7 默认防火墙由firewalld来管理!关iptables屁事! 以开放80端口为例,执行以下命令: 开放80端口:firewall-cmd ...