按需讲解之Supervisor

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

Supervisor是一个进程监控程序。

 

满足的需求是:我现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor

 

先弄懂两个命令:

supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令

supervisorctl:启动supervisor的命令行窗口。

需求:redis-server这个进程是运行redis的服务。我们要求这个服务能在意外停止后自动重启。

安装(Centos):

yum install python-setuptools

easy_install supervisor

 

测试是否安装成功:

echo_supervisord_conf

 

创建配置文件:

echo_supervisord_conf > /etc/supervisord.conf

 

修改配置文件:

在supervisord.conf最后增加:

[program:redis]

command = redis-server   //需要执行的命令

autostart=true    //supervisor启动的时候是否随着同时启动

autorestart=true   //当程序跑出exit的时候,这个program会自动重启

startsecs=3  //程序重启时候停留在runing状态的秒数

(更多配置说明请参考:http://supervisord.org/configuration.html

 

运行命令:

supervisord    //启动supervisor

supervisorctl   //打开命令行

[root@vm14211 ~]# supervisorctl 
redis                            RUNNING    pid 24068, uptime 3:41:55

ctl中: help   //查看命令

ctl中: status  //查看状态

 

遇到的问题:

1 redis出现的不是running而是FATAL 状态

应该要去查看log

log在/tmp/supervisord.log

 

2 日志中显示:

gave up: redis entered FATAL state, too many start retries too quickly

修改redis.conf的daemonize为no

具体说明:http://xingqiba.sinaapp.com/?p=240

事实证明webdis也有这个问题,webdis要修改的是webdis.json这个配置文件

 

完成验证:

1 ps aux | grep redis

[root@vm1~]# ps aux | grep redis 
root     30582  0.0  0.0   9668  1584 ?        S    14:12   0:00 redis-server

 

2 kill 30582

 

3

[root@vm1 ~]# ps aux | grep redis 
root     30846  0.0  0.0   9668  1552 ?        S    15:19   0:00 redis-server

 

看到这个时候pid更新了。

 

完成,庆祝。

 

----------------------

作者:yjf512(轩脉刃)

出处:http://www.cnblogs.com/yjf512/

本文版权归yjf512和cnBlog共有,欢迎转载,但未经作者同意必须保留此段声明

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4月前
|
网络协议 Unix 应用服务中间件
Supervisor安装与配置
Supervisor安装与配置
|
4月前
|
监控 JavaScript Shell
如何安装和管理 Supervisor
如何安装和管理 Supervisor
99 0
|
7月前
|
监控 Ubuntu Unix
Supervisor使用详解
Supervisor使用详解
78 0
supervisor 安装、配置、使用
supervisor 安装、配置、使用
748 0
supervisor的使用
supervisor的使用
106 0
|
JavaScript
supervisor安装
supervisor安装
121 0
|
jenkins 持续交付
jenkins通过supervisor配置守护进程
jenkins通过supervisor配置守护进程
231 0
|
Unix Shell 应用服务中间件
supervisor 使用
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
344 0
|
Unix 应用服务中间件 Shell
Supervisor守护进程
使用Supervisor的背景: #Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。
1253 0