supervisor进程管理工具
Supervisor
一个python写的进程管理工具,用来启动、关闭、重启进程,可以同时控制多个进程。
安装:
pip install supervisor
配置:
通过配置文件来满足自己的需求
配置文件分为两部分:
- supervisord(server端,对应supervisorctl为client端)
- 应用程序(即我们管理要应用程序)
1.supervisord配置:
安装好后,可以运行echo_supervisord_conf命令来输出默认的配置项(里面有配置项和对应的注释)
但是通常的做法是把其重定向到指定的文件中,运行如下:
echo_supervisord_conf > xx/supervisord.conf
上述重定向的文件可以随便放在哪个目录下面,有访问权限就可以
配置参考:
[unix_http_server]
file=/tmp/supervisor.sock ; the path to the socket file [supervisord]
logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB
logfile_backups= ; # of main logfile backups; means none, default
loglevel=info ; log level; default info; others: debug,warn,trace
pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=false ; start in foreground if true; default false
minfds= ; min. avail startup file descriptors; default
minprocs= ; min. avail process descriptors;default [rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket [include]
files = relative/directory/*.ini
启动supervisord:
supervisord -c xx/supervisord.conf
通过-c去指定配置文件路径,如果不指定路径的话,则会按如下顺序查找:
./supervisord.conf ./etc/supervisord.conf /etc/supervisord.conf
查看是否在运行:
ps -ef |grep "supervisord.conf"
2.program配置:
接下来就是应用程序的配置了
注意一个地方:
一般我们会把要管理的进程的配置文件单独独立出来,然后通过上面supervisord的配置文件中的 [include] 选项(上述配置参考第21行)进行导入,这样子的话就可以使多个进程的管理相互独立出来。
配置参考:
[program:starcloud]
directory = /home/ubuntu/StarCloud/starcloud ; 程序的启动目录
command = /usr/bin/python /home/ubuntu/StarCloud/starcloud/start.py ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = ubuntu ; 用哪个用户启动
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数
stdout_logfile = /home/ubuntu/StarCloud/log/supervisor.log ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
supervisorctl客户端控制台:
我们可以在这个控制台查看当前运行的进程的状态:status
停止进程:stop
启动进程:start
重启进程:restart
热更新配置文件:reload
两个日志文件
在配置中,我们会有两个日志文件:
- 对supervisor的运行状况进行日志记录:/tmp/supervisord.log(默认),实际是在supervisord配置中logfile这里进行配置
- 对所管理进程的应用程序进行日志记录:在program配置中的stdout_logfile对应的日志文件。
supervisor进程管理工具的更多相关文章
- Supervisor 进程管理工具
简介: Supervisor 进程管理工具 一.安装 shell > yum -y install python-pip shell > pip install supervisor # ...
- linux(centos)下安装supervisor进程管理工具
在接触supervisor进程管理工具之前,使用springboot打包部署到linux服务器的流程是这样子的,如下图所示: 上图展示的就是最一般的流程,如果项目是小项目或者demo可以这样子去部署, ...
- supervisor进程管理工具的使用
supervisor是一款进程管理工具,当想让应用随着开机启动,或者在应用崩溃之后自启动的时候,supervisor就派上了用场. 广泛应用于服务器中,用于引导控制程序的启动 安装好superviso ...
- python之supervisor进程管理工具
supervisor是python写的一个管理进程运行的工具,可以很方便的监听.启动.停止.重启一个或多个进程:有了supervisor后,就不用字节写启动和监听的shell脚本了,非常方便. sup ...
- CentOS 6.3安装配置supervisor进程管理工具
1. Supervisor是一个C/S系统,它可以在类unix操作系统让用户来监视和控制后台服务进程的数量,一个很重要的功能就是监控服务器的主要后台进程,并在出现问题是自动重启. 2. 根据服务器上的 ...
- 进程管理工具之supervisor[详解]
原文链接:https://blog.csdn.net/weixin_42390791/article/details/88866237 一.问题背景1.背景 如何才能让一个进程摆脱终端,获得相对 ...
- Linux进程管理工具——supervisor
介绍 Supervisord是用Python实现的一款非常实用的进程管理工具 安装 这里用源码 supervisor-.tar.gz .tar.gz cd supervisor- sudo pytho ...
- supervisor python开发的进程管理工具
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...
- Python 进程管理工具 Supervisor 使用教程
Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...
随机推荐
- HDU_3183_A Magic Lamp
A Magic Lamp Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- vue - nodejs
一.知识 打开Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.cn/ 我们会发现这样一句话: 翻译成中文如下: Node.js 是一个基于 Chr ...
- hdu 5056 Boring count (窗体滑动)
You are given a string S consisting of lowercase letters, and your task is counting the number of su ...
- Python-装饰器-案例-获取文件列表
import os def get_all_path(fun): '''装饰器.功能:获取全路径文件名.如:D:/tmp/12.txt :param fun: :return:file_path_li ...
- MVC模式:python案例
quotes = ('A man is not complete until he is married. Then he is finished.', 'As I said before, I ne ...
- (转) SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程
简介 spring boot 它的设计目的就是为例简化开发,开启了各种自动装配,你不想写各种配置文件,引入相关的依赖就能迅速搭建起一个web工程.它采用的是建立生产就绪的应用程序观点,优先于配置的惯例 ...
- oracle 查询按月份分组
如下表table1: 日期(exportDate) 数量(amount) -------------- ----------- 14- ...
- gcc报错 can not be used when making a shared object; recompile with -fPIC
使用google protobuf时,出现错误 /usr/bin/ld: /usr/local/lib/libprotobuf.a(message_lite.o): relocation R_X86_ ...
- 5.3 Components — Passing Properties to A Component
1. 默认情况下,一个组件在它使用的模板范围中没有访问属性. 例如,假想你有一个blog-post组件被用来展示一个blog post: app/templates/components/blog-p ...
- 003-maven安装(3.5.4版本)
说明:欲安装maven,必须先安装java的jdk. 1.下载地址. 链接:https://pan.baidu.com/s/1EKFBrgqShFZJ6Fccen82Jw 密码:ny15 2.直接解压 ...