Linux进程管理神器 - supervisord

 参考: 

在这里先放官方链接:

  1. 官网: http://supervisord.org/
  2. github: https://github.com/Supervisor/supervisor

 

概述:

软件功能:

本软件是进程管理系统,可以很简单的管理系统,同时提供了很丰富的接口可以让你随心所欲的管理

应用场景:

    1. 常驻任务维护、管理,不论你的常驻进程是什么语言写的,都可以使用本神器管理
    2. 用来监控nginx, redis, mongodb等软件,实现软件如果因为异常挂了,可以自动重启,不至于终端服务

 

架构:

supervisord: 服务端,真正用来监控程序的进程

supervisorctl: 客户端,用来管理监控程序的进程

 

安装:

说明:

    1. 我这里采用了一个自己约定的规范,方便组内成员形成共识,对服务管理没有学习成本
    2. 我是依赖python安装的

规范:

    1. 软件根目录: /data/opt
    2. 快捷方式根目录: /data/opt/scripts,其中本目录会加入到系统PATH中。export PATH='/data/opt/scripts':$PATH
    3. supervisord的配置目录、以及运行日志目录都放置在/data/opt/supervisord里

依赖:

python

安装:

    pip install supervisor

 

结构树:

.
|-- conf
|   |-- demo.conf.tpl
|   `-- demo_multi.conf.tpl
|-- logs
|   `-- supervisord.log
|-- supervisord.conf
|-- supervisord.pid
`-- supervisor.sock

2 directories, 6 files

   

配置 - supervisord:

说明:

1. 本软件支持web页面管理,可以放开相应配置,但建议如果没必要,不需要放开。我给的示例是没有放开的

配置:

[unix_http_server]
file=/data/opt/supervisord/supervisor.sock   ; the path to the socket file

[supervisord]
logfile=/data/opt/supervisord/logs/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB        ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10           ; # of main logfile backups; 0 means none, default 10
loglevel=info                ; log level; default info; others: debug,warn,trace
pidfile=/data/opt/supervisord/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=false               ; start in foreground if true; default false
minfds=1024                  ; min. avail startup file descriptors; default 1024
minprocs=200                 ; min. avail process descriptors;default 200

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

[supervisorctl]
serverurl=unix:///data/opt/supervisord/supervisor.sock ; use a unix:// URL  for a unix socket

[include]
files = conf/*.conf

启动:

    supervisord -c /data/opt/supervisord/supervisord.conf

 

配置 - supervisorctl:

说明:

进程可以只启动一个,也可以启动多个。这里把两个模板都放出来,大家可以根据需要更改。

配置:

    conf/demo.conf.tpl:

[program:%%name%%]
command=%%command%%
autostart=true
autorestart=true
startretries=3

; stop
stopsignal=TERM

; user
user=root

; 日志
redirect_stderr=true
stdout_logfile=/data/opt/supervisord/logs/%(program_name)s.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=50

    conf/demo_multi.conf.tpl:

[program:%%name%%]
command=%%command%%
process_name=%(program_name)s_%(process_num)02d
numprocs=3
autostart=true
autorestart=true
startretries=3

; stop
stopsignal=TERM

; user
user=root

; 日志
redirect_stderr=true
stdout_logfile=/data/opt/supervisord/logs/%(program_name)s.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=50

启动:

supervisorctl -c /data/opt/supervisord/supervisord.conf

常用管理命令:

  • help:帮助
  • start: 启动服务
  • stop: 停止服务
  • restart: 重启服务
  • reload: 重新加载服务

使用截图:

 

其他:

如果你使用过程中有不明白的,可以到qq群: 854211808 或者 qq扫下面的二维码加入群。

如果有技术分享交流也都可以哦!

 

posted on 2018-10-29 18:07  初闯入PHP的世界  阅读(1643)  评论(0编辑  收藏  举报

导航