之前到现在很久没有用了,还是从安装说下,做个简单的实验,系统为Ubuntu14.04

快速安装配置

sudo pip_python install supervisor
sudo echo_supervisord_conf > /etc/supervisord.conf  # 会报错  permission denied: /etc/supervisord.conf,可以使用下面的语句
sudo su - root -c "echo_supervisord_conf > /etc/supervisord.conf"

这样就生成了一个原始的配置文件,但是有些需要改动下才好使

sudo vim /etc/supervisord.conf

...
[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
...

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
...

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket
...

[include]
files = /etc/supervisord.d/*.ini

这里要注意 unix_http_server 跟 supervisorctl中的 sock 文件目录要一致

然后创建目录

sudo su - root -c “mkdir -p /etc/supervisord.d”

之后进程管理的脚本放到supervisord.d就行了

下面就用一个简单的例子来说明

先写一个测试用的脚本
#!/usr/bin/python
#-*- coding:utf-8 -*-
############################
#File Name: somejob.py
#Author: orangleliu
#Mail: orangleliu@gmail.com
#Created Time: 2015-04-15 11:08:13
#License: MIT
############################

import sys, time

while True:
    print "pyserver runing %s"%time.ctime()
    sys.stdout.flush()
    time.sleep(10)
配置一个进程管理脚本 放在 /etc/supervisord.d 目录下

somejob.ini

[program:somejob]
command=/usr/bin/python /home/lzz/temp/super/somejob.py
directroy=/home/lzz/temp/super/
autostart=true
autorestart=true
startretries=3
user=lzz
stdout_logfile=/home/lzz/temp/super/%(program_name)s.log
stderr_logfile=/home/lzz/temp/super/%(program_name)s.log
操作
  • supervisord 启动
sudo /usr/local/bin/supervisord -c /etc/supervisord.conf
lzz@ubuntu:supervisord.d$ ps -ef|grep super
root      5709     1  0 11:30 ?        00:00:00 /usr/bin/python /usr/local/bin/supervisord -c /etc/supervisord.conf
lzz       5710  5709  0 11:30 ?        00:00:00 /usr/bin/python /home/lzz/temp/super/somejob.py

看到我的job进程已经启动了,检查日志文件, 也已经正常

lzz@ubuntu:super$ tail somejob.log
pyserver runing Wed Apr 15 11:31:47 2015
pyserver runing Wed Apr 15 11:31:57 2015
pyserver runing Wed Apr 15 11:32:07 2015
  • supervisord 重载
supervisorctl reread
supervisorctl update

进程查看

lzz@ubuntu:super$ sudo supervisorctl
somejob                          RUNNING   pid 6021, uptime 0:00:13
  • 进程重载 修改下job 程序,看看效果
sudo supervisorctl reload somejob

查看日志

pyserver runing Wed Apr 15 11:44:22 2015
hi
pyserver runing Wed Apr 15 11:44:32 2015
hi
pyserver runing Wed Apr 15 11:44:38 2015
pyserver runing Wed Apr 15 11:44:48 2015
  • 进程关闭
sudo supervisorctl stop somejob  #启动这里改为start

查看进程

lzz@ubuntu:super$ ps -ef|grep super
root      6020     1  0 11:41 ?        00:00:00 /usr/bin/python /usr/local/bin/supervisord -c /etc/supervisord.conf

还有一部分是web界面的对进程的管理,还有开机启动等,这些可以自行查看文档 或者 google

参考:

声明:

本文出自 “orangleliu笔记本” 博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/45057377

作者orangleliu 采用署名-非商业性使用-相同方式共享协议

[supervisor] 使用小记(入门教程)的更多相关文章

  1. mongodb入门教程

    title: mongodb入门教程 date: 2016-04-06 14:47:18 tags: --- 为什么要认识呢,因为这玩意就一傻逼 借用一下百科的介绍 MongoDB 是一个介于关系数据 ...

  2. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  3. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  4. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  5. Content Security Policy 入门教程

    阮一峰文章:Content Security Policy 入门教程

  6. gulp详细入门教程

    本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...

  7. UE4新手引导入门教程

    请大家去这个地址下载:file:///D:/UE4%20Doc/虚幻4新手引导入门教程.pdf

  8. ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  9. webpack入门教程之初识loader(二)

    上一节我们学习了webpack的安装和编译,这一节我们来一起学习webpack的加载器和配置文件. 要想让网页看起来绚丽多彩,那么css就是必不可少的一份子.如果想要在应用中增加一个css文件,那么w ...

随机推荐

  1. [LNOI 2014]LCA

    Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1. 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先. ...

  2. BZOJ4711 小奇挖矿

    Description [题目背景] 小奇在喵星系使用了无限非概率驱动的采矿机,以至于在所有星球上都采出了一些矿石,现在它准备建一些矿石仓 库并把矿石运到各个仓库里. [问题描述] 喵星系有n个星球, ...

  3. [Codeforces]862F - Mahmoud and Ehab and the final stage

    题目大意:n个字符串,支持修改一个位置上的字符串和查询一个区间的子区间中长度乘LCP的最大值,输入字符数和询问数不超过10^5. 做法:求出相邻的LCP长度,区间LCP等于区间最小值,查询分几种情况考 ...

  4. ●BZOJ 2049 [Sdoi2008]Cave洞穴勘测

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2049 题解: LCT入门题 就是判两个点是否在同一颗树里 代码: #include<c ...

  5. ●BZOJ 3796 Mushroom追妹纸

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3796 题解: 题意:    给出三个串 A,B,C    找出一个最长串 S,    使得 ...

  6. poj 1228 稳定凸包

    Grandpa's Estate Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12337   Accepted: 3451 ...

  7. [bzoj4821][Sdoi2017]相关分析

    来自FallDream的博客,未经允许,请勿转载,谢谢. Frank对天文学非常感兴趣,他经常用望远镜看星星,同时记录下它们的信息,比如亮度.颜色等等,进而估算出星星的距离,半径等等.Frank不仅喜 ...

  8. [BZOJ]1045 糖果传递(HAOI2008)

    放一道数学题. Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正整数n<=1000000,表示 ...

  9. jquery easyui datagrid改变某行的值

    $("#DeterminateMembers").datagrid("updateRow",{index:index,row:{fzr:"0" ...

  10. 修改原生单选框样式(vue单选组件)

    一.效果如图 二.实现 修改单选样式 //html <div class="radio-wrap"> <input type="radio" ...