Supervisord安装和配置
http://zhangweide.cn/archive/2013/supervisor-note.html
Supervisord
supervisord的出现,结束了我这苦恼的问题,它可以帮你守护任何进程,当然如果它的进程也挂了就全都over了。实际情况是上线三个多月运行非常好,没有发现进程掉过。
CentOS下安装Supervisord
# yum install python-setuptools
# easy_install supervisor
创建配置文件
# echo_supervisord_conf > /etc/supervisord.conf
修改配置文件
# vi /etc/supervisord.conf
在末尾添加
|
1
2
3
4
5
6
|
[program:chat]command=python /data0/htdocs/chat/main.pypriority=1numprocs=1autostart=trueautorestart=true |
配置说明:
command 要执行的命令
priority 优先级
numprocs 启动几个进程
autostart supervisor启动的时候是否随着同时启动
autorestart 当程序over的时候,这个program会自动重启,一定要选上
启动Supervisord
# supervisord
查看帮助
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
[root@localhost core]# supervisord --helpsupervisord -- run a set of applications as daemons.Usage: /usr/bin/supervisord [options]Options:-c/--configuration FILENAME -- configuration file-n/--nodaemon -- run in the foreground (same as 'nodaemon true' in config file)-h/--help -- print this usage message and exit-v/--version -- print supervisord version number and exit-u/--user USER -- run supervisord as this user (or numeric uid)-m/--umask UMASK -- use this umask for daemon subprocess (default is 022)-d/--directory DIRECTORY -- directory to chdir to when daemonized-l/--logfile FILENAME -- use FILENAME as logfile path-y/--logfile_maxbytes BYTES -- use BYTES to limit the max size of logfile-z/--logfile_backups NUM -- number of backups to keep when max bytes reached-e/--loglevel LEVEL -- use LEVEL as log level (debug,info,warn,error,critical)-j/--pidfile FILENAME -- write a pid file for the daemon process to FILENAME-i/--identifier STR -- identifier used for this instance of supervisord-q/--childlogdir DIRECTORY -- the log directory for child process logs-k/--nocleanup -- prevent the process from performing cleanup (removal of old automatic child log files) at startup.-a/--minfds NUM -- the minimum number of file descriptors for start success-t/--strip_ansi -- strip ansi escape codes from process output--minprocs NUM -- the minimum number of processes available for start success--profile_options OPTIONS -- run supervisord under profiler and output results based on OPTIONS, which is a comma-sep'd list of 'cumulative', 'calls', and/or 'callers', e.g. 'cumulative,callers') |
启动时指定配置文件
# supervisord -c /etc/supervisord.conf
进入ctl模式
# supervisorctl
ctl中的简单命令
help 查看命令帮助
status 查看状态
stop XXX 停止某一个进程
start XXX 启动某个进程
restart XXX 重启某个进程
reload 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
update 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
测试
这里以守护nginx进程来演示,首先在/etc/supervisord.conf加入
|
1
2
3
4
5
6
|
[program:nginx]command=/usr/local/nginx/sbin/nginxpriority=1numprocs=1autostart=trueautorestart=true |
然后启动supervisord
|
1
2
3
|
[root@localhost core]# supervisord -c /etc/supervisord.conf [root@localhost core]# ps -le | grep supervisord 1 S 0 14035 1 0 80 0 - 48722 poll_s ? 00:00:00 supervisord |
查看nginx的进程
|
1
2
3
4
5
|
[root@localhost core]# ps -le | grep nginx1 S 0 14037 1 0 80 0 - 56260 rt_sig ? 00:00:00 nginx5 S 99 14038 14037 0 80 0 - 56363 ep_pol ? 00:00:00 nginx5 S 99 14039 14037 0 80 0 - 56300 ep_pol ? 00:00:00 nginx5 S 99 14040 14037 0 80 0 - 56300 ep_pol ? 00:00:00 nginx |
杀掉nginx进程
|
1
|
[root@localhost core]# kill -9 14037 |
然后接着重新查看nginx进程
|
1
2
3
4
|
[root@localhost core]# ps -le | grep nginx5 S 99 14038 1 0 80 0 - 56363 ep_pol ? 00:00:00 nginx5 S 99 14039 1 0 80 0 - 56300 ep_pol ? 00:00:00 nginx4 S 0 14456 14035 0 80 0 - 56259 hrtime ? 00:00:00 nginx |
起死回生了,并且pid已经由14037变成14038。搞定!
通过web管理
supervisord可以通过web管理进程以及查看进程状态,需要在配置文件里开启
找到[inet_http_server]这一段,修改成
|
1
2
3
4
|
[inet_http_server] ; inet (TCP) server disabled by defaultport=*:9001 ; (ip_address:port specifier, *:port for all iface)username=admin ; (default is no username (open server))password=123 ; (default is no password (open server)) |
其中port这个字段要各位注意,如果*:9001表示允许所有ip访问,如果指定单个IP可以 xx.xx.xx.xx:9001 这样既可。如果你开启了iptabls记得要在规则里允许port指定的端口号。
然后保存配置,重启supervisord
https://github.com/mlazarov/supervisord-monitor
Supervisord安装和配置的更多相关文章
- Linux 进程管理工具 supervisord 安装及使用
Supervisor是用Python实现的一款非常实用的进程管理工具 1.安装过程非常简单 安装python 安装meld3-0.6.8.tar.gz 安装supervisor-3.0a12.tar. ...
- elasticsearch5之Elastalert 安装使用 配置邮件报警和微信报警
简介 Elastalert是用python2写的一个报警框架(目前支持python2.6和2.7,不支持3.x),github地址为 https://github.com/Yelp/elastaler ...
- Supervisor安装与配置(Linux/Unix进程管理工具)
原文链接:http://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyth ...
- Supervisor(Linux/Unix进程管理工具)安装与配置
参考链接:https://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyt ...
- Supervisor安装与配置
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...
- CentOS7下Supervisor安装与配置
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...
- Supervisor 的安装与配置教程
简介 Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程. 它的目标与launchd, daemo ...
- JDK安装与配置
JDK安装与配置 一.下载 JDK是ORACLE提供免费下载使用的,官网地址:https://www.oracle.com/index.html 一般选择Java SE版本即可,企业版的选择Java ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
随机推荐
- 在QtCreater中配置Artistic Style格式化Qt程序源代码!!
Qt很吸引人,可能是我对Qt开发工具QtCreater不熟悉,只发现里面提供了一个快捷键:"ctrl+i",很多人说这就是格式化代码快捷键,我发现这仅仅是代码缩进,并不是真正意义上 ...
- 虚拟安装centos后无法上网、DNS无法解析问题解决
1.保证拟机ip和VMnet8的ip在同一网段内 2.虚拟机网关和VMnet8相同
- BZOJ 1305--[CQOI2009]dance跳舞(最大流)
1305: [CQOI2009]dance跳舞 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 4150 Solved: 1792[Submit][St ...
- 哈夫曼树——c++
哈夫曼树的介绍 Huffman Tree,中文名是哈夫曼树或霍夫曼树,它是最优二叉树. 定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树. 这个定 ...
- 日志分析与splunk浅谈
难易程度:★★★ 阅读点:linux;python;web安全;日志分析; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 linux下的日志分析对企业来说非常重要,对我们分析p ...
- java 中什么是aop
AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.OOP引入 ...
- centos6.5 yum安装lamp
准备篇: 1.清空防火墙 iptables -F 或者关闭防火墙 /etc/init.d/iptables stop,如果要防火墙开机不要启动 chkconfig iptables off 2.关闭S ...
- centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例
centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例 一.监听配置(命令:netca) 1.以 oracle 用户输入命令,启动图形化工具配置监听 [oracle@lo ...
- 初识PHP之php运行流程及原理(一)
初识PHP一.用脚本命令行运行php(1)打开cmd.exe(winkey+R)(2)找到php.exe(拖进cmd即可)(3)输入命令php.exe -f "文件实际路径"注:运 ...
- Alamofire源码导读三:返回的处理逻辑
 以DataRequest 为例子. 最简单的返回 URLSession 有一个方法,可以构建 URLSessionDataTask func dataTask(with url: URL, com ...