Linux进程管理神器 - supervisord
Posted ming-john
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux进程管理神器 - supervisord相关的知识,希望对你有一定的参考价值。
参考:
在这里先放官方链接:
- 官网: http://supervisord.org/
-
github: https://github.com/Supervisor/supervisor
概述:
软件功能:
本软件是进程管理系统,可以很简单的管理系统,同时提供了很丰富的接口可以让你随心所欲的管理
应用场景:
- 常驻任务维护、管理,不论你的常驻进程是什么语言写的,都可以使用本神器管理
- 用来监控nginx, redis, mongodb等软件,实现软件如果因为异常挂了,可以自动重启,不至于终端服务
架构:
supervisord: 服务端,真正用来监控程序的进程
supervisorctl: 客户端,用来管理监控程序的进程
安装:
说明:
- 我这里采用了一个自己约定的规范,方便组内成员形成共识,对服务管理没有学习成本
- 我是依赖python安装的
规范:
- 软件根目录: /data/opt
- 快捷方式根目录: /data/opt/scripts,其中本目录会加入到系统PATH中。export PATH=‘/data/opt/scripts‘:$PATH
- 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扫下面的二维码加入群。
如果有技术分享交流也都可以哦!
以上是关于Linux进程管理神器 - supervisord的主要内容,如果未能解决你的问题,请参考以下文章
Linux进程管理工具 Supervisord 的安装 及 入门教程