简介:

Supervisor 进程管理工具

一、安装

shell > yum -y install python-pip

shell > pip install supervisor

# 这样就安装好了,注意:这货不支持 Python 、用 yum 安装也有问题

二、配置

shell > echo_supervisord_conf > /etc/supervisord.conf

# 生成配置文件到指定位置,报错的时候卸载原来的包装这个 meld3==0.6.7 [ pkg_resources.DistributionNotFound: meld3>=0.6.5 ]

shell > grep -vP '^;|^$' /etc/supervisord.conf 

[unix_http_server]
file=/var/tmp/supervisor.sock ; .sock 存放位置 [supervisord]
logfile=/var/log/supervisord.log ; .log 存放位置
logfile_maxbytes=50MB ; 每个日志文件最大 50MB
logfile_backups= ; 保留10个备份
loglevel=info ; 日志级别,info,debug,warn,trace
pidfile=/var/run/supervisord.pid ; .pid 存放位置
nodaemon=false ; 守护进程方式启动
minfds= ; 可以打开的文件描述符
minprocs= ; 可以启动的进程数 [rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl]
serverurl=unix:///var/tmp/supervisor.sock ; .sock 存放位置 # 稍微修改了一些默认项

三、启动

shell > supervisord -c /etc/supervisord.conf

# 指定配置文件路径

shell > ps aux | grep sup
root 0.0 0.0 ? S : : [sync_supers]
root 0.0 0.1 ? Ss : : /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf

四、启动一个自定义脚本

shell > vim hello.sh

#!/bin/bash

for i in {..};do echo hello; sleep ;done

shell > chmod a+x hello.sh
shell > vim /etc/supervisord.conf

[program:hello]
directory=/root ; 运行程序时切换到指定目录
command=/bin/bash hello.sh ; 执行程序 ( 程序不能时后台运行的方式 )
redirect_stderr=true ; 标准错误输出重定向到标准输出
stdout_logfile=hello.log ; 指定日志文件路径,可以绝对路径 ( 相对路径 相对 directory= 指定的目录 )
stdout_logfile_maxbytes=50MB ; 文件切割大小
stdout_logfile_backups= ; 保留的备份数 # 加入程序启动配置
shell > supervisorctl

supervisor> help

default commands (type help <topic>):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version # 客户端工具提供一些指令 ( supervisorctl help 这样运行也是可以的 ) supervisor> update
hello: added process group # 自动重启配置文件发生改变的进程 supervisor> start hello
hello: started supervisor> status
hello RUNNING pid , uptime :: # 反正就是这几个指令,启动后脚本的输出会被记录到 stdout_logfile= 指定的日志文件中 # 现在的情况是,程序执行一次就退出了 supervisor> status
hello EXITED Dec : PM supervisor> exit
shell > vim /etc/supervisord.conf

[program:hello]
directory=/root
command=/bin/bash hello.sh
autostart=true ; 程序随 supervisord 启动而启动
startsecs= ; 程序启动 后没有退出,认为程序启动成功
startretries= ; 启动失败重试次数
autorestart=true ; 程序退出后自动启动,false 不启动、unexpected 只有退出状态码为 exitcodes= 指定的值是才自动启动
redirect_stderr=true
stdout_logfile=hello.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups= # 添加一些配置,重新来过 supervisor> update
hello: stopped
hello: updated process group # 注意:这次会时间长一点,因为设置了 startsecs=,也就是说 秒后才能 status 看到进程状态 # 这次程序就会自动重启了
shell > vim /etc/supervisord.conf

[program:hello]
directory=/root
command=/bin/bash hello.sh
process_name=%(program_name)s_%(process_num)02d ; 启动多个进程时设置不同的进程名
numprocs= ; 启动几个进程
autostart=true
startsecs=
startretries=
autorestart=true
redirect_stderr=true
stdout_logfile=hello.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups= # 又加了启动多个进程的配置 supervisor> update
hello: stopped
hello: updated process group supervisor> status
hello:hello_00 RUNNING pid , uptime ::
hello:hello_01 RUNNING pid , uptime :: # 这次长这样了.. supervisor> stop all
hello:hello_00: stopped
hello:hello_01: stopped supervisor> status
hello:hello_00 STOPPED Dec : PM
hello:hello_01 STOPPED Dec : PM # 好了收工!

Supervisor 进程管理工具的更多相关文章

  1. linux(centos)下安装supervisor进程管理工具

    在接触supervisor进程管理工具之前,使用springboot打包部署到linux服务器的流程是这样子的,如下图所示: 上图展示的就是最一般的流程,如果项目是小项目或者demo可以这样子去部署, ...

  2. supervisor进程管理工具的使用

    supervisor是一款进程管理工具,当想让应用随着开机启动,或者在应用崩溃之后自启动的时候,supervisor就派上了用场. 广泛应用于服务器中,用于引导控制程序的启动 安装好superviso ...

  3. supervisor进程管理工具

    Supervisor 一个python写的进程管理工具,用来启动.关闭.重启进程,可以同时控制多个进程. 安装: pip install supervisor 配置: 通过配置文件来满足自己的需求 配 ...

  4. python之supervisor进程管理工具

    supervisor是python写的一个管理进程运行的工具,可以很方便的监听.启动.停止.重启一个或多个进程:有了supervisor后,就不用字节写启动和监听的shell脚本了,非常方便. sup ...

  5. CentOS 6.3安装配置supervisor进程管理工具

    1. Supervisor是一个C/S系统,它可以在类unix操作系统让用户来监视和控制后台服务进程的数量,一个很重要的功能就是监控服务器的主要后台进程,并在出现问题是自动重启. 2. 根据服务器上的 ...

  6. 进程管理工具之supervisor[详解]

    原文链接:https://blog.csdn.net/weixin_42390791/article/details/88866237 一.问题背景1.背景​   如何才能让一个进程摆脱终端,获得相对 ...

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

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

  8. supervisor python开发的进程管理工具

    Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...

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

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

随机推荐

  1. Java数组初始

    首先要清楚数组变量与数组对象的概念.数组变量是一个引用变量,可以指向数组对象. int[] a = new int[]{7, 8, 9};        a是数组变量,指向有new创建的数组对象. 数 ...

  2. dkhadoop的自然语言处理技术介绍

    这段时间一直在接触学习hadoop方面的知识,所以说对自然语言处理技术也是做了一些了解.网络上关于自然语言处理技术的分享文章很多,今天就给大家分享一下HanLP方面的内容. 自然语言处理技术其实是所有 ...

  3. dede的织梦问答模块也可以支持arclist标签

    dedecms织梦问答等模块支持arclist标签,实现随机调用其他栏目文章 就是让模块模板文件支持调用主站的模板,因为调用主站下的/templets/default/模板,也就实现了支持调用所有标签 ...

  4. ORM练习项目-图书管理系统(BMS)实现细节

    分析 一本书 可以由多个作者编著 一本书只能由一个出版社出版 一个作者可以写多本书 每个作者有自己的简介 对应关系: Author-Book # 多对多 Publish-Book # 一对多 Auth ...

  5. redis通过dump.db文件 进行数据替换 复制

    进行数据替换无非就是三步, 杀掉redis进程 ------------> 复制 dump.db文件 ------------------>启动redis   pkill redis-se ...

  6. wxWidgets:给窗口添加工具条

    请先看上一篇<wxWidgets入门>. 修改MyFrame.h: #ifndef MYFRAME_H #define MYFRAME_H #include <wx/wxprec.h ...

  7. bzoj2026: [SHOI2009]Coin

    Description Constantine刚结束在MySky Island的度假,正准备离开的时候,他想送给她的好朋友YY一份特别的礼物——MySky Island上特别的手工艺品宝石纪念币.宝石 ...

  8. springMVC学习(6)-包装pojo类型、数组、list、Map类型参数绑定

    一.包装类型pojo参数绑定: 需求:商品查询controller方法中实现商品查询条件传入. 实现方法: 1)在形参中 添加HttpServletRequest request参数,通过reques ...

  9. 求两点之间距离 C++

    求两点之间距离(20 分) 定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干成员函数. 定义一个函数Distance(), 用于求两点之间的距离.输入格式: 输入有两行 ...

  10. ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)

    ActiveMQ 高可用集群安装.配置(ZooKeeper + LevelDB) 1.ActiveMQ 集群部署规划: 环境: JDK7 版本:ActiveMQ 5.11.1 ZooKeeper 集群 ...