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的更多相关文章

  1. Java Business Process Management(业务流程管理) 初识环境搭建

    一.简介 (一)什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易 ...

  2. Performance Tuning Using Linux Process Management Commands

    [root@bigdata-server-02 /]# ps --help all Usage: ps [options] Basic options: -A, -e all processes -a ...

  3. Linux Process Management && Process Scheduling Principle

    目录 . 引言 . 进程优先级 . 进程的生命周 . 进程表示 . 进程管理相关的系统调用 . 进程调度 . 完全公平调度类 . 实时调度类 . 调度器增强 . 小结 1. 引言 在多处理器系统中,可 ...

  4. <<Linux kernel development>> Process Management

    The Process On modern operating systems,processes provide two virtualizations:a virtualized processo ...

  5. linux process management

    CREAT PROCESS fork() | clone(參数,决定父子函数的共享内容) | do_fork() | copy_process() | dup_task_struct() 创建子进程的 ...

  6. csharp:workflow and bpm(Business Process Management)

    http://ccflow.codeplex.com/ http://winwf.codeplex.com/ http://nginn.codeplex.com/ https://github.com ...

  7. Process management of windows

    igfxem.exe进程是正常的进程.是intel家的核显驱动类的进程.核显即"核芯显卡",是指GPU部分它是与CPU建立在同一内核芯片上,两者完全融合的芯片."核芯显卡 ...

  8. Project Management Process

    Project Management ProcessDescription .............................................................. ...

  9. supervisor:How is this different from daemontools ?

    "daemontools has too much focus on security as opposed to being a process manager for my taste. ...

随机推荐

  1. python之路——5

    王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 复习 1. 列表操作 增 append insert extend 删 remove pop clear d ...

  2. python常用模块: random模块, time模块, sys模块, os模块, 序列化模块

    一. random模块  import random # 任意小数 print(random.random()) # 0到1的任意小数 print(random.uniform(-10, 10)) # ...

  3. laravel插入数据时报 502 Bad Gateway

    前提:model中$timestamp = true; 但数据表中created_at 和updated_at  是默认为当前时间  造成冲突. 原因:用create方法时 created_at 和u ...

  4. uigrid配置详解(1)

    $scope.gridOptions.rowTemplate = '<div style="background-color: aquamarine" ng-click=&q ...

  5. 在Docker中安装配置Oracle12c并实现数据持久化

    在Docker中安装配置Oracle12c并实现数据持久化 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢 eric@userver:~$ docker pull sath89/oracl ...

  6. [SQL]用SQL语句断开某个数据库的所有活动连接

    USE master go IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[P_KillConnectio ...

  7. BCGcontrolBar(六) RibbonBar编辑

    BCGcontrolBar 可以使用 Ribbon Designer方便的对 Ribbon条进行编辑 文件位置为 C:\Program Files\BCGSoft\BCGControlBarPro\D ...

  8. CentOS7.3编译hadoop2.7.3源码

    在使用hive或者是kylin时,可以选择文件的压缩格式,但是这个需要有hadoop native库的支持,默认情况下,hadoop官方发布的二进制包中是不包含native库的,所以无法使用一些压缩相 ...

  9. 通过OTA的方式在局域网分发iOS应用

    公司的一个项目有Android和iOS的app,Android的下载和安装都很方便,不过iOS有些麻烦,因为项目本身有些限制,主要有以下一些障碍:1.iOS的版本不是通过Appstore分发.2.出于 ...

  10. Spring之jdbcTemplate:查询的三种方式(单个值、单个对象、对象集合)

    JdbcTemplateDemo2.java package helloworld.jdbcTemplate; import org.springframework.jdbc.core.JdbcTem ...