Supervisor安装使用

本文同步于个人Github博客:https://github.com/johnnian/Blog/issues/27,欢迎留言。

之前在生产环境部署Web服务,使用 nohup来启动服务,但是nohup在异常崩溃的情况下,无法重启服务,找到 Supervisor, 可以实现后台守护进程的方式运行服务。

一、介绍

Supervisor是比较常用的进程管理工具,支持 Linux/MacOS平台,可以用来控制一组Linux/Unix进程(启动、重启、kill)等,使用Supervisor管理的进程,可以做到以守护进程的方式运行,服务异常关闭后可以自动重启。

Supervisor 有下面几个组件:

  • supervisord: Supervisor的服务端程序,使用前,需要先启动该组件;
  • supervisorctl: Supervisor的客户端程序,用来实际控制子进程(自定义的服务、程序);

Supervisor 通过配置文件,还可以启动Web控制台,通过Web页面来管理子进程;

二、安装

环境:
CentOS : 6/7
Python : 2.X

使用Python的Setuptools软件包来安装:

[root@4fff02d62bba ~]# yum -y install python-setuptools
[root@4fff02d62bba ~]# easy_install supervisor
[root@4fff02d62bba ~]# supervisord -v
3.3.3

默认安装的版本是最新版(3.3.3)

三、配置 & 启动服务

拷贝默认配置文件

[root@4fff02d62bba ~]# mkdir /etc/supervisor
[root@4fff02d62bba ~]# echo_supervisord_conf > /etc/supervisord.conf
[root@4fff02d62bba ~]# vi /etc/supervisord.conf
;修改include配置,去除注释
[include]
files = /etc/supervisor/*.conf

[root@4fff02d62bba ~]# supervisord -c /etc/supervisord.conf
[root@4fff02d62bba ~]# ps -ef | grep supervisord
root       202     0  0 03:24 ?        00:00:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf

四、配置应用或服务器进程

编写应用启动脚本:启动脚本还有其他的选项配置,点击查看官网文档

[root@4fff02d62bba ~]# vi /etc/supervisor/storm.conf
[program:storm]
directory=/root
command=storm supervisor
autostart=true
autorestart=true

配置文件生效:

#(修改的配置文件生效,设置`autostart=true`的程序,会自动启动)
[root@4fff02d62bba ~]# supervisorctl update
Restarted supervisord

备注:

  • supervisorctl还有其他命令,点击这里查看官网文档
  • supervisorctl命令的默认配置文件是:/etc/supervisord.conf

参考链接

  • 官网安装指南
  • 使用 supervisor 管理进程
  • CentOS 安装 supervisor 进程管理工具

你可能感兴趣的:(Supervisor安装使用)