Supervisor应用配置实例

Supervisor是一个进程管理系统,允许用户在Unix-like操作系统上监视与管理一系列进程。管理的进程被当做supervisor的子进程,supervisor可以准确知道进程的状态,当进程中断时可以自动重启。当需要管理一个用户或一个项目的进程时,supervisor是一个很好的工具。

安装配置

安装:

sudo apt-get install supervisor

安装完成后,配置文件在/etc/supervisor目录下,其中supervisord.conf是supervisord的配置文件,conf.d文件夹放需要管理的进程配置文件。
在这里插入图片描述
下面以配置一个Python web运行环境为例,开机后自动启动 Nginx 和 uWSGI,并且支持进程中止时候自动重启。配置非常简单,仅需以下三个步骤。

  1. supervisor的配置文件(分号; 表示注释):

一般不需要改动这个配置。

; supervisor config file

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

; supervisord的主要全局配置
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

; 引入进程管理配置文件
[include]
files = /etc/supervisor/conf.d/*.conf
  1. 管理的子进程配置文件

在此配置需要管理的进程

[supervisord]
nodaemon=true

[program:uwsgi]
command=/usr/local/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini --die-on-term --need-app
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

[program:nginx]
command=/usr/sbin/nginx
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
# Graceful stop, see http://nginx.org/en/docs/control.html
stopsignal=QUIT

program 是程序名称,不能为空;
command是程序运行命令
autorestart=true当程序中止时自动重启

  1. 启动supervisor
/usr/bin/supervisord

开启http 监控server

在supervisord.conf配置文件里面添加如下配置。

[inet_http_server]
port=*:9001

效果如下
在这里插入图片描述

常用命令介绍

root@my-host:/src# supervisorctl stop all
nginx: stopped
uwsgi: stopped
root@my-host:/src# supervisorctl start all
nginx: started
uwsgi: started
root@my-host:/src# supervisorctl stop nginx
nginx: stopped
root@my-host:/src# supervisorctl start nginx
nginx: started
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章