[4]supervisor使用管理:实现对异常中断子进程的自动重启(以mysql为例)

实现进程服务管理,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制
安装过程
1、到官网下载最新版本,解压编译,
tar -zxvf supervisor-3.3.4.tar.gz 
cd supervisor-3.3.4
python setup.py install
可能会遇到如下错误:
Installed /usr/lib/python2.7/site-packages/supervisor-3.3.4-py2.7.egg
Processing dependencies for supervisor==3.3.4
Searching for meld3>=0.6.5
Reading https://pypi.python.org/simple/meld3/
Download error on https://pypi.python.org/simple/meld3/: [Errno 1] _ssl.c:504: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed -- Some packages may not be found!
Couldn't find index page for 'meld3' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: [Errno 1] _ssl.c:504: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed -- Some packages may not be found!
No local packages or download links found for meld3>=0.6.5
error: Could not find suitable distribution for Requirement.parse('meld3>=0.6.5')
解决办法:
tar -xf meld3-1.0.1.tar.gz
cd meld3-1.0.1
python setup.py install
重新执行安装supervisor包
生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
查看配置文件
cat /etc/supervisord.conf |grep -v ";"|grep -v "^$"

[[email protected] ~]# cat /etc/supervisord.conf |grep -v ";"|grep -v "^$"
[unix_http_server]
[supervisord]
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
配置WEB管理进程
[inet_http_server]       
port=127.0.0.1:9001     ; 服务器ip
username=xxx        ;自定义
password=xxx        ;自定义
创建管理配置文件目录
mkdir /etc/supervisord

编辑配置文件,在配置文件底部,配置include
[include]
files=/etc/supervisord/*.conf
启动
supervisord -c /etc/supervisord.conf

#在

/etc/supervisord目录下添加mysql一个实例的配置文件,如下:

[[email protected] supervisord]# cat mysql_3306.conf 
[program:mysql_3306]
#command=/etc/init.d/mysql start --port=3306 --sleep=3 --tryies=3 --daemon
command=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/var/lib/mysql/ --pid-file=/var/lib/mysql/host-172-16-32-152.pid --basedir=/usr/local/mysql --log-error=/var/lib/mysql/mariadb.log --user=mysql  
autostart=true
user=mysql
autorestart=unexpected
numprocs=1
redirect_stderr=true
startsecs=10
stdout_logfile=/var/log/block_push.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/block_push.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB

最后执行:

supervisorctl reload

原文地址:http://blog.51cto.com/sf1314/2131632

时间: 2024-10-14 05:58:43

[4]supervisor使用管理:实现对异常中断子进程的自动重启(以mysql为例)的相关文章

[3]supervisor使用管理:实现对异常中断子进程的自动重启(以nginx和apache为例)

Web服务器Nginx的安装与配置 卸载老版本的Nginx sudo apt-get --purge remove nginxsudo apt-get autoremove dpkg --get-selections|grep nginx//将罗列出与nginx相关的软件,如nginx-common一并删除sudo apt-get --prege remove nginx-common1234 安装Nginx 从官网下载Nginx 编译安装: tar -zxvf nginx-1.10.2.tar

[2]supervisor的使用管理:实现对异常中断的子进程的自动重启(以redis为例)

1:下载 wget http://download.redis.io/releases/redis-3.2.8.tar.gz1 下载指定版本,可以登录https://redis.io/download查看 2:安装 tar zxvf redis-3.2.8.tar.gzcd redis-3.2.8makesudo make install1234 这时Redis 的可执行文件被放到了/usr/local/bin 3:配置 sudo mkdir /etc/redissudo cp redis.co

Supervisor的作用与配置:实现对异常中断的子进程的自动重启

supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动, 所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中就好了. 此时被管理进程被视为supervisor的子进程,若该子进程异常中断,则父进程可以准确的获取子进程异常中断的信息, 通过在配置文件中设置autostart=ture,可以实现对异常中断的子进程的自动重启. 安装supervisor $ sudo apt-get install super

如何用supervisor守护php-fpm主进程以实现php-fpm的自动重启

最近有同事有个针对php-fpm进程的监护需求,也即:如果php-fpm的master进程意外退出(可能是crash,也可能是被误kill),那么希望master进程能被自动拉起,以免中断服务. 我们知道,supervisor是一个非常强大的进程监控(monitor & control)工具,它理论上可以实现php-fpm master进程的守护需求.因此,我帮同事试验了如何用supervisor完成他的需求,结果表明,supervisor确实是神器,只需一个合理的配置文件,它就能解决问题. 下

supervisor进程管理工具

先说说supervisor是干什么的吧? supervisor这东西,其实就是用来管理进程的.咱们为什么要用supervisor呢?因为,相对于我们linux传统的进程管理方式来说, 它有很多的优势,要不然咱们也不会闲着没事去用supervisor了. OK,下面来看看supervisor有哪些好处吧. 简单 为啥简单呢?因为咱们通常管理linux进程的时候,一般来说都需要自己编写一个能够实现进程start/stop/restart/reload功能的脚本, 然后丢到/etc/init.d/下面

SUPERVISOR进程管理器配置指南

SUPERVISOR进程管理器配置指南 1. supervisor简介 1.1. 官网 http://supervisord.org/ 1.2. 介绍 Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程. 它的目标与launchd, daemontools和runit有些相似, 但是与它们不一样的是, 它不是作为init(进程号pid是1)运行. 它是被用来控制进程, 并且它在启动的时候和一般程

RTT之内存管理及异常中断

内存管理分静态内存管理和动态内存管理(根据大小又分2种) 静态内存管理:创建.删除.初始化.解绑.申请和释放.初始化内存池是属于静态内存管理,与创建内存池不同的是,此处内存池对象所使用的内存空间是由用户指定的一个缓冲区空间,用户把缓冲区的指针传递给内存池对象控制块,其余的初始化工作与创建内存池相同. 动态内存:在堆heap上分配. 小堆内存管理模块主要针对系统资源比较少(小于2M内存空间的系统):内存池中有不同的内存块,申请时先查找找到符合要求的(拆分),释放时如果紧邻的空闲则合并成一个. 而S

supervisor——进程管理工具

Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的控制,还可以同时启动.关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动. 1.安装 Supervisor 可以运行在 Linux.Mac OS X 上.如前所述,supervisor 是 Python 编

Supervisor 进程管理工具

Supervisor  进程管理工具时刻检测进程存活状态:可用来启动.重启.关闭进程: Supervisord(supervisor是一个C/S模型的程序,这是server端,对应的有client端:supervisorctl)和应用程序(即我们要管理的程序). 一.下载: https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3