supervisor安装及配置——管理守护进程的福利(代码片段)

author author     2022-12-19     498

关键词:

CentOS7以上直接使用yum安装即可正常使用小配文件配置supervisor程序
并可以多进程方式启动自己的进守护进程
但CentOS6系统使用yum安装的supervisor不支持使用小配置文件和多进程
所以要想在CentOS6系统上的正常使用supervisor管理自己的守护进程
就需要使用python安装器进行安装,具体步骤参考如下

 
1,安装python安装器
yum install -y python-setuptools
 
2,使用python安装器安装supervisor
easy_install supervisor
 
3,查看supervisor版本
supervisord --version
 
4,生成supervisor默认配置文件
echo_supervisord_conf > /etc/supervisord.conf
 
5,有效配置内容参考如下
 
[unix_http_server]
file=/tmp/supervisor.sock //如果修改成其它目录,需要确认进程的属主对其目录有写权限
[supervisord]
logfile=/data/log/supervisor/supervisord.log //修改成自定义的日志目录,需要确认进程的属主对其目录有写权限
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/tmp/supervisord.pid //如果修改成其它目录,需要确认进程的属主对其目录有写权限
nodaemon=false
minfds=1024
minprocs=200
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock //如果file选项有做过修改,此处需要对应
[include] //默认状态小配文件没有打开,需要自动取消注释
files = supervisord.d/*.conf //此处的官方建议使用相对路径(相对于/etc目录)
 
6,生成服务启动脚本以便使用service命令进行管理
vim /etc/rc.d/init.d/supervisord
 
#!/bin/bash
 

chkconfig: - 55 45
description: supervisor service
processname: supervisord
config: /etc/supervisord.conf
pidfile: /var/run/supervisord.pid

 
. /etc/init.d/functions
 
DAEMON=/usr/bin/supervisord
PIDFILE=/var/run/supervisord.pid
 
[ -x "$DAEMON" ] || exit 0
 
start()
echo -n "Starting supervisord: "
if [ -f $PIDFILE ]; then
PID=cat $PIDFILE
echo supervisord already running: $PID
exit 2;
else
daemon $DAEMON --pidfile=$PIDFILE -c /etc/supervisord.conf
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/supervisord
return $RETVAL
fi


 
stop()
echo -n "Shutting down supervisord: "
echo
killproc -p $PIDFILE supervisord
echo
rm -f /var/lock/subsys/supervisord
return 0

case "$1" in
start)
start
;;
stop)
stop
;;
status)
status supervisord
;;
restart)
stop
start
;;
*)
echo "Usage: start|stop|status|restart"

  • exit 1
    ;;
    esac
    exit $?
     
    7、给脚本添加执行权限
    chmod +x /etc/rc.d/init.d/supervisord
     
    8,将上面生成的启动脚本添加进CentOS服务管理器
    chkconfig --add supervisord
     
    9、将supervisor服务设成自启动
    chkconfig supervisord on
     
    10、添加自己需要守护的进程的小配文件
    vim /etc/supervisord.d/self.conf
     
    具体格式参考官方给出的默认版本,也即如下这一部分
    ;[program:theprogramname]
    ;command=/bin/cat ; the program (relative uses PATH, can take args)
    ;processname=%(programname)s ; processname expr (default %(programname)s)
    ;numprocs=1 ; number of processes copies to start (def 1)
    ;directory=/tmp ; directory to cwd to before exec (def no cwd)
    ;umask=022 ; umask for process (default None)
    ;priority=999 ; the relative start priority (default 999)
    ;autostart=true ; start at supervisord start (default: true)
    ;startsecs=1 ; # of secs prog must stay up to be running (def. 1)
    ;startretries=3 ; max # of serial start failures when starting (default 3)
    ;autorestart=unexpected ; when to restart if exited after running (def: unexpected)
    ;exitcodes=0,2 ; ‘expected‘ exit codes used with autorestart (default 0,2)
    ;stopsignal=QUIT ; signal used to kill process (default TERM)
    ;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
    ;stopasgroup=false ; send stop signal to the UNIX process group (default false)
    ;killasgroup=false ; SIGKILL the UNIX process group (def false)
    ;user=chrism ; setuid to this UNIX account to run the program
    ;redirectstderr=true ; redirect proc stderr to stdout (default false)
    ;stdoutlogfile=/a/path ; stdout log path, NONE for none; default AUTO
    ;stdoutlogfilemaxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
    ;stdoutlogfilebackups=10 ; # of stdout logfile backups (0 means none, default 10)
    ;stdoutcapturemaxbytes=1MB ; number of bytes in ‘capturemode‘ (default 0)
    ;stdouteventsenabled=false ; emit events on stdout writes (default false)
    ;stderrlogfile=/a/path ; stderr log path, NONE for none; default AUTO
    ;stderrlogfilemaxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
    ;stderrlogfilebackups=10 ; # of stderr logfile backups (0 means none, default 10)
    ;stderrcapturemaxbytes=1MB ; number of bytes in ‘capturemode‘ (default 0)
    ;stderreventsenabled=false ; emit events on stderr writes (default false)
    ;environment=A="1",B="2" ; process environment additions (def no adds)
    ;serverurl=AUTO ; override serverurl computation (childutils)
     
    ; The sample eventlistener section below shows all possible eventlistener
    ; subsection values. Create one or more ‘real‘ eventlistener: sections to be
    ; able to handle event notifications sent by supervisord.
     
    ;[eventlistener:theeventlistenername]
    ;command=/bin/eventlistener ; the program (relative uses PATH, can take args)
    ;processname=%(programname)s ; processname expr (default %(programname)s)
    ;numprocs=1 ; number of processes copies to start (def 1)
    ;events=EVENT ; event notif. types to subscribe to (req‘d)
    ;buffersize=10 ; event buffer queue size (default 10)
    ;directory=/tmp ; directory to cwd to before exec (def no cwd)
    ;umask=022 ; umask for process (default None)
    ;priority=-1 ; the relative start priority (default -1)
    ;autostart=true ; start at supervisord start (default: true)
    ;startsecs=1 ; # of secs prog must stay up to be running (def. 1)
    ;startretries=3 ; max # of serial start failures when starting (default 3)
    ;autorestart=unexpected ; autorestart if exited after running (def: unexpected)
    ;exitcodes=0,2 ; ‘expected‘ exit codes used with autorestart (default 0,2)
    ;stopsignal=QUIT ; signal used to kill process (default TERM)
    ;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
    ;stopasgroup=false ; send stop signal to the UNIX process group (default false)
    ;killasgroup=false ; SIGKILL the UNIX process group (def false)
    ;user=chrism ; setuid to this UNIX account to run the program
    ;redirectstderr=false ; redirectstderr=true is not allowed for eventlisteners
    ;stdoutlogfile=/a/path ; stdout log path, NONE for none; default AUTO
    ;stdoutlogfilemaxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
    ;stdoutlogfilebackups=10 ; # of stdout logfile backups (0 means none, default 10)
    ;stdouteventsenabled=false ; emit events on stdout writes (default false)
    ;stderrlogfile=/a/path ; stderr log path, NONE for none; default AUTO
    ;stderrlogfilemaxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
    ;stderrlogfilebackups=10 ; # of stderr logfile backups (0 means none, default 10)
    ;stderreventsenabled=false ; emit events on stderr writes (default false)
    ;environment=A="1",B="2" ; process environment additions
    ;serverurl=AUTO ; override serverurl computation (childutils)
     
    在这里给出一个自己在用的简化实例
    [program:jumpserver]
    command =source /opt/py3/bin/activate && /data/jumpserver/jms start all -d
    processname = %(programname)s%(processnum)s
    numprocs = 1
    autostart= true
    autorestart= true
    stdoutlogfile=/data/log/jumpserver/jumpserver.log
     
    11、一切准备好之后就可以启动supervisord服务了
    如上配置的话,supervisord进程启动后,其所管理的子进程也会自动被启动
     
    至此为此,一个简单的supervisor安装加配置基本上搞定了
    想使用supervisor官理自己的守护进程的同仁们可以大胆开工了!*

使用supervisor管理进程二

supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。3... 查看详情

supervisor安装及配置管理uwsgi进程

Supervisor介绍Supervisor允许其用户在UNIX类操作系统上控制多个进程。块如下:方便需要为每个进程实例编写rc.d脚本通常是不方便的。 rc.d脚本是进程初始化/自动启动/管理的常用形式,但写入和维护可能会很痛苦。此外,rc.d脚... 查看详情

centos下supervisor守护进程基本配置

supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控、管理进程。常用于管理与某个用户或项目相关的进程。组成部分supervisord:服务守护进程supervisorctl:命令行客户端WebServer:提供与supervisorctl功能相当的WEB操作界面XM... 查看详情

进程守护supervisor系列一:安装与配置(代码片段)

进程守护Supervisor准备工作:环境:Centos7(Centos6.5不适合以下教程)Python>=2.7(升级见:Python升级教程)pip包管理工具安装(已安装可跳过)curlhttps://bootstrap.pypa.io/get-pip.py-oget-pip.pypythonget-pip.py安装:安装superviosrpipinstallsupervisor配... 查看详情

palo通过supervisor进行进程管理(代码片段)

...用守护进程启动,以保证进程退出后,会被自动拉起,如Supervisor。如需使用守护进程启动,需要修改各个start_xx.sh脚本,去掉最后的&符号首先安装supervisor,具体请参照本人的另一篇博客CentOS7安装supervisor守护进程管理器 1... 查看详情

mac下supervisor安装及简单配置(代码片段)

supervisor是一个用Python写的进程管理工具,可以很方便的用来启动、重启、关闭进程(守护进程)。可以用他来管理自己的“服务程序”。安装首先安装Python,Mac系统好像自带。执行sudopipinstallsupervisor安装安装pip下载get-pip.py,然... 查看详情

linux使用supervisor守护进程(代码片段)

Supervisor是什么是Linux/Unix系统下的一个进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起ÿ... 查看详情

宝塔面板使用supervisor管理器开启守护进程(代码片段)

1、宝塔面板的安装宝塔官网链接windows采用下一步安装方式liunx安装命令centosyuminstall-ywget&&wget-Oinstall.shhttp://download.bt.cn/install/install_6.0.sh&&shinstall.sh其他安装可以在官网中查看在这里可以随便写一个守护进程的php代码wh... 查看详情

supervisor守护进程

一、supervisor安装  1、yum-yinstallepel-release  2、yum-yinstallsupervisor 二、supervisor配置文件详解  三、supervisorEVENT  四、supervisorXML_rpc  查看详情

centos7.4配置supervisor守护进程(代码片段)

1、安装yuminstallpython-setuptoolseasy_installsupervisor2、创建守护进程跟路径mkdir-m700-p/etc/supervisor3、在目录“/etc/supervisor”下创建配置文件echo_supervisord_conf>/etc/supervisor/supervisord.conf4、修改配置vim/etc/superviso 查看详情

使用supervisor管理服务

参考技术ASupervisor可以用来启动和关闭服务,能将进程变成守护进程。Supervisor在python2下安装编辑supervisor的配置文件例如放在/etc/supervisord.conf可以配置多个服务,supervisor会是这些服务的父进程,监控这些服务,如果服务挂了会重... 查看详情

supervisor进程管理工具(代码片段)

1、什么是supervisorSupervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。、作用:它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意... 查看详情

10:supervisor进程管理工具(代码片段)

1.1supervisor介绍  1、什么是supervisor      1. Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。、      2.作用:它可以很方便的监听、启动、停止、重启一... 查看详情

supervisor的配置与使用

环境:ubuntu14.04lts http://supervisord.org/liunx下有很多守护进程的工具,如nohup,screen,supervisor等,supervisor是用Python开发的进程管理程序,能将一个普通的命令行进程变为后台daemon,异常退出时能自动重启。#安装sudoapt-getinstallsupe... 查看详情

centos7中使用supervisor守护进程(代码片段)

 转:https://www.cnblogs.com/qmhuang/p/8196132.html配置supervisor实现进程守护1.安装supervisoryuminstallSupervisor 2.启动服务supervisord-c/etc/supervisord.conf 进入cd/etc目录找到supervisord.conf配置文件和superviso 查看详情

supervisor后台进程管理(代码片段)

文章目录一、Supervisor组成部分二、supervisor配置2.1supervisor安装2.2supervisor服务端配置2.3supervisor监控管理三、supervisor使用3.1supervisor管理服务3.2控制子进程命令3.3supervisord管理四、supervisor容器4.1配置4.2安装supervisor4.3supervisor配置文件... 查看详情

详解supervisor进程守护监控(代码片段)

Supervisor在百度百科上给的定义是超级用户,监管员。Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类unix的机器上,supervisor就是用Python开发的一套通用的进程管理程序,能将一个普... 查看详情

supervisor-守护进程工具

参考技术ASupervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,superviso... 查看详情