centos 6.5, python 2.6, supervisor 3.3.1;

Linux下后台运行程序通常的做法是用nohub,然后配以进程的检测来实现服务式的操作,但其实有更好的选择supervisor,尤其是在多个程序需要管理时;

安装

yum直接安装的版本比较低,推荐使用Python的包安装工具进行安装:

# pip install supervisor

如果没有pip这个命令就:

# yum install python-pip -y

验证安装:

# supervisord -version
  3.3.

配置

生成主配置文件:

# echo_supervisord_conf > /etc/supervisord.conf

修改/etc/supervisord.conf末尾的include段:

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

把自己的程序配置放到/etc/supervisord.d/里面:

# mkdir -p /etc/supervisord.d/
# vi /etc/supervisord.d/myapp.ini
[program:myapp]
command=/bin/sh /bin/myapp.sh  #程序启动命令
autostart=false  #是否随supervisord启动
autorestart=false  #退出后是否自动重启,可选unexpected表示异常退出时才自动重启
user=root  #启动用户
redirect_stderr=false  #是否把stderr重定向到stdout
stdout_logfile=/var/log/myapp.stdout  #stdout重定向到文件
stderr_logfile=/var/log/myapp.stderr  #stderr重定向到文件

这里只写了常用的配置,更多可参考/etc/supervisord.conf中的例子;

下面是程序myapp.sh的内容:

# cat /bin/myapp.sh
  #!/bin/sh
  n=
  while true
  do
  echo myapp $n
  let n++
  sleep
  done

使用

启动服务(可能会有警告说用了root用户,配置文件不是指定的而是搜索到的,没有影响):

# supervisord

使用命令supervisorctl可以进入supervisor的客户端shell,支持自动补全,输入help查看都有那些命令可用:

也可以用supervisorctl+cmd不进入shell进行操作:

下面介绍常用的命令:

reload            重启supervisord服务

shutdow          停止supervisord服务

maintail [-30/-f]       类似tail命令的方式查看服务进程的控制台输出

status            列出所管理程序的状态

start/stop/restart myapp  启动/停止/重启指定程序

pid             服务进程ID

pid myapp            指定程序的进程ID

tail [-30/-f] myapp       类似tail命令的方式查看指定程序的控制台输出

tips: 如果是Python程序,会发现用print打印的内容supervisorctl tail看不到,原因是缓存,把配置中的command改为python -u myapp.py即可;

分组

程序较多时可以用supervisorctl start all来统一操作,但如果程序较多但又不能统一操作呢?答案是分组,可以统一操作的分到一个组;

分组是在配置了program的基础上进行的,根据上节的内容,假设配置了两个program:

[program:myapp1]

[program:myapp2]

来把这两个配置为一个组app:

# vi /etc/supervisord.d/app.ini
[group:app]
programs=myapp1,myapp2

在supervisor的shell中操作分组:

tips:分组后,单个操作时需要带上组名:supervisorctl tail app:myapp1;

over

进程管理工具supervisor的使用的更多相关文章

  1. 进程管理工具supervisor

    1. 简介 supervisor有两个组件:supervisord和supervisorctl,组成了client/server结构. supervisord负责读入配置文件,然后supervisor ...

  2. Linux进程管理工具Supervisor的安装配置

    目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...

  3. Linux进程管理工具——supervisor

    介绍 Supervisord是用Python实现的一款非常实用的进程管理工具 安装 这里用源码 supervisor-.tar.gz .tar.gz cd supervisor- sudo pytho ...

  4. Python 进程管理工具 Supervisor 使用教程

    Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...

  5. linux 使用进程管理工具 supervisor

    1.supervisor是使用python进行开发的运行在linux服务器上的进程管理工具 老版本的supervisor需要运行在python2环境,如果需要使用supervisor管理python3 ...

  6. 进程管理工具 Supervisor

    要想在终端后台常驻进程,首先想到的是在命令后加 & 符号,来达到隐藏程序在后台的目的,尽管看起来进程已经在后台运行了,实际上终端会话关闭时进程还是会被 kill 掉,这种问题一般是采用搭配 n ...

  7. 进程管理工具Supervisor(一)简介与使用

    Supervisor是用Python开发的一套client/server架构的进程管理程序,能做到开机启动,以daemon进程的方式运行程序,并可以监控进程状态等等. linux进程管理方式有传统的r ...

  8. python进程管理工具Supervisor

    一.Supervisor简单介绍 supervisor是一个 Client/Server模式的系统,允许用户在类unix操作系统上监视和控制多个进程,或者可以说是多个程序.supervisor与lau ...

  9. 进程管理工具Supervisor(二)Events

    supervisor可以当做一个简单的进程启动.重启.控制工具使用,也可以作为一个进程监控框架使用,作为后者,需要使用supervisor的Events机制. Event Listeners supe ...

  10. Linux进程管理工具Supervisor

    简述 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启. 它是通过fork/exec的方式把这些被管 ...

随机推荐

  1. TortoiseGit功能介绍

    TortoiseGit功能介绍 使用方便 强大的提交对话框 每个项目设置 最小日志消息长度,以避免意外提交空日志消息 用于拼写检查的语言 与问题跟踪系统集成 有用的工具 有多种语言版本 Tortois ...

  2. C++学习 —— 重新认识C++

    我大概是从读研究生入学那天开始,想要学好C++的,学习C++几乎也成了我每个学期的计划之一.为什么会每个学期都想要学好C++呢?因为每次学习都失败了啊... 本月,我开始再Coursera上学习Het ...

  3. css背景图撑开盒子高度

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. js如何获取字符串第几次出现的位置

    str:查询字符串: cha:查询子字符串: num:第几次出现:第一次则为 1: function findStrIndex(str, cha, num-1) { var x = str.index ...

  5. 浏览器调起Hbuilder的APP

           最近用Hbuilder来开发APP,测试各种功能,其中,最近测试到,要用这个浏览器调起APP的功能,我看官网有教程,但是有些可能刚工作没多久,所以,有些地方看不大明白,官方也没细说,所以 ...

  6. 11.2vue(3)

    2018-11-2 19:00:33 明天周末,又可以愉快整理博客啦! 越努力,越幸运!永远不要高估自己!!! 接着学vue 感觉好强大! 用这个组件的好处就是,不需要手动刷新,文件只要把保存就自动刷 ...

  7. loadrunner笔记(一):下载、安装loadrunner和负载压力测试概念说明

    (一)   下载和安装 下载:(没账号的话得先注册一个账号) https://software.microfocus.com/en-us/products/loadrunner-load-testin ...

  8. win 10安装Linux虚拟机教程

    1.首先下载虚拟机 用的是VMware 官方下载地址:https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmwar ...

  9. vue2.0 源码解读(二)

    小伞最近比较忙,阅读源码的速度越来越慢了 最近和朋友交流的时候,发现他们对于源码的目录结构都不是很清楚 红色圈子内是我们需要关心的地方 compiler  模板编译部分 core 核心实现部分 ent ...

  10. javascript的数组之filter()

    filter()方法创建一个新数组,其包含通过回调函数测试的所有元素. const words = ['spray', 'limit', 'elite', 'exuberant', 'destruct ...