博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Supervisor 进程管理工具
阅读量:6112 次
发布时间:2019-06-21

本文共 3864 字,大约阅读时间需要 12 分钟。

简介:

Supervisor 进程管理工具

一、安装

shell > yum -y install python-pipshell > pip install supervisor# 这样就安装好了,注意:这货不支持 Python 3、用 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              ; 每个日志文件最大 50MBlogfile_backups=10                 ; 保留10个备份loglevel=info                      ; 日志级别,info,debug,warn,tracepidfile=/var/run/supervisord.pid   ; .pid  存放位置nodaemon=false                     ; 守护进程方式启动minfds=1024                        ; 可以打开的文件描述符minprocs=200                       ; 可以启动的进程数[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 suproot        40  0.0  0.0      0     0 ?        S    15:49   0:00 [sync_supers]root      4044  0.0  0.1 199380 11164 ?        Ss   17:33   0:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf

四、启动一个自定义脚本

shell > vim hello.sh#!/bin/bashfor i in {
1..10};do echo hello; sleep 1;doneshell > 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=10     ; 保留的备份数# 加入程序启动配置
shell > supervisorctlsupervisor> helpdefault commands (type help 
):=====================================add exit open reload restart start tail avail fg pid remove shutdown status update clear maintail quit reread signal stop version# 客户端工具提供一些指令 ( supervisorctl help 这样运行也是可以的 )supervisor> updatehello: added process group# 自动重启配置文件发生改变的进程supervisor> start hellohello: startedsupervisor> statushello RUNNING pid 4125, uptime 0:00:04# 反正就是这几个指令,启动后脚本的输出会被记录到 stdout_logfile= 指定的日志文件中# 现在的情况是,程序执行一次就退出了supervisor> statushello EXITED Dec 01 06:02 PMsupervisor> exit
shell > vim /etc/supervisord.conf[program:hello]directory=/rootcommand=/bin/bash hello.shautostart=true                ; 程序随 supervisord 启动而启动startsecs=10                  ; 程序启动 10 后没有退出,认为程序启动成功 startretries=3                ; 启动失败重试次数autorestart=true              ; 程序退出后自动启动,false 不启动、unexpected 只有退出状态码为 exitcodes= 指定的值是才自动启动redirect_stderr=truestdout_logfile=hello.logstdout_logfile_maxbytes=50MB  stdout_logfile_backups=10# 添加一些配置,重新来过supervisor> updatehello: stoppedhello: updated process group# 注意:这次会时间长一点,因为设置了 startsecs=10,也就是说 10 秒后才能 status 看到进程状态# 这次程序就会自动重启了
shell > vim /etc/supervisord.conf[program:hello]directory=/rootcommand=/bin/bash hello.shprocess_name=%(program_name)s_%(process_num)02d  ; 启动多个进程时设置不同的进程名numprocs=2                                       ; 启动几个进程autostart=truestartsecs=5startretries=3autorestart=trueredirect_stderr=truestdout_logfile=hello.logstdout_logfile_maxbytes=50MBstdout_logfile_backups=10# 又加了启动多个进程的配置supervisor> updatehello: stoppedhello: updated process groupsupervisor> statushello:hello_00                   RUNNING   pid 4899, uptime 0:00:09hello:hello_01                   RUNNING   pid 4898, uptime 0:00:09# 这次长这样了..supervisor> stop allhello:hello_00: stoppedhello:hello_01: stoppedsupervisor> statushello:hello_00                   STOPPED   Dec 01 06:27 PMhello:hello_01                   STOPPED   Dec 01 06:27 PM# 好了收工!

转载于:https://www.cnblogs.com/wangxiaoqiangs/p/7943979.html

你可能感兴趣的文章
JAVA数组的定义及用法
查看>>
充分利用HTML标签元素 – 简单的xtyle前端框架
查看>>
设计模式(十一):FACADE外观模式 -- 结构型模式
查看>>
iOS xcodebuile 自动编译打包ipa
查看>>
程序员眼中的 SQL Server-执行计划教会我如何创建索引?
查看>>
【BZOJ】1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路(floyd)
查看>>
cmake总结
查看>>
数据加密插件
查看>>
linux后台运行程序
查看>>
win7 vs2012/2013 编译boost 1.55
查看>>
IIS7如何显示详细错误信息
查看>>
ViewPager切换动画PageTransformer使用
查看>>
coco2d-x 基于视口的地图设计
查看>>
C++文件读写详解(ofstream,ifstream,fstream)
查看>>
Android打包常见错误之Export aborted because fatal lint errors were found
查看>>
Tar打包、压缩与解压缩到指定目录的方法
查看>>
新手如何学习 jQuery?
查看>>
配置spring上下文
查看>>
Python异步IO --- 轻松管理10k+并发连接
查看>>
mysql-python模块编译问题解决
查看>>