supervisor 服务管理工具介绍

Supervisor官方解释:

Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.


简单来说,Supervisor是python编写的一个服务管理工具,可以对脚本提供start,restart,stop支持,并自动守护.

使用方法很简单,如下:

1.安装:

sudo apt-get install python-pip

sudo pip install supervisor


2.配置:

如果在/etc/supervisor/supervisord.conf  中有include /etc/supervisor/conf.d/*.conf,则直接去该目录新建配置文件.

比如shadowsocks的一个配置文件:

/etc/supervisor/conf.d/shadowsocks.conf 

[program:shadowsocks]
command=ssserver -c /etc/shadowsocks.json
autorestart=true
user=nobody

配置完成后,记得一定到reread下,让supervisord重新加载配置:

supervisorctl  reread


3.常用操作:

help 查看命令帮助,如:supervisorctl help reread
update Reload config and add/remove as necessary
reload Restart the remote supervisord.
reread Reload the daemon's configuration files
start/restart/stop  program_name  (注意,这里不会重新update配置,所以要reread下)

4.问题排查:

有些时候,启动不了服务,则可以根据对应日志判断:

默认配置下,supervisor和程序的log都在: /var/log/supervisor/

比如下方这种错误,明显就是程序对sa_server没有访问权限,加上权限就好.

1414378704_paste.png


使用redis的时,还可能遇到:

启动redis报gave up: redis entered FATAL state, too many start retries too quickly错误

原因是: 

redis启动使用了守护模式,修改redis.conf的daemonize为no,重试即可.

原因估计是因为对于已经daemon内置的程序,没有任何存在的父进程(即PPID=1),且在UNIX-like系统进程层级中直接位于init之下.

因此supervisor接管不了.

| 0个评论