使用Supervisor管理Linux进程
使用Supervisor管理Linux进程
简介
Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,提供了大量的功能来实现对进程的管理。
安装
sudo pip install supervisor
配置
安装完成 supervisor 之后,可以使用 “echo_supervisord_conf” 命令来生成样例配置文件
echo_supervisord_conf
默认 supervisor 会使用 /etc/supervisord.conf 作为默认配置文件。
启动服务
服务程序
首先写个小程序来模拟一个服务程序,如下
myserver.sh
#!/bin/sh
while true
do
date
sleep 5
done
配置
修改配置文件 /etc/supervisord.conf ,内容如下
[supervisord]
nodaemon=true
[program:myserver]
command=/home/kongxx/test/myserver.sh
启动服务
supervisord -c /etc/supervisord.conf
运行上面的程序即可启动supervisor服务,此时会在当前目录下生成一个日志文件 supervisord.log。
此时我们使用 “ps -ef | grep myserver” 找到上面的服务进程,然后kill掉这个进程。此时就会看到日志中 supervisor 会启动一个新的myserver进程。
管理服务
对于上面的例子我们只能启动一个服务,却不能管理这些配置的服务,下面就看看怎样管理服务。
服务程序
还是使用上面myserver.sh程序。
配置
/etc/supervisord.conf
[inet_http_server] ; inet (TCP) server disabled by default
port = *:9999 ; (ip_address:port specifier, *:port for all iface)
username = admin ; (default is no username (open server))
password = Letmein ; (default is no password (open server))
[supervisord]
nodaemon = false
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl = http://127.0.0.1:9999 ; use an http:// url to specify an inet socket
username = admin ; should be same as http_username if set
password = Letmein ; should be same as http_password if set
prompt = mysupervisor ; cmd line prompt (default "supervisor")
[program:myserver]
command = /home/kongxx/test/myserver.sh
redirect_stderr = true
stdout_logfile = /tmp/myserver.log
启动服务
supervisord -c /etc/supervisord.conf
- 运行客户端,查看进程状态,控制进程启动或停止
supervisord : 启动supervisor
supervisorctl reload :修改完配置文件后重新启动supervisor
supervisorctl update:根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
supervisorctl status :查看supervisor监管的进程状态
supervisorctl start 进程名 :启动XXX进程
supervisorctl stop 进程名 :停止XXX进程
supervisorctl stop all:停止全部进程,注:start、restart、stop都不会载入最新的配置文件
supervisor 管理命令行
supervisorctl也可以不带任何参数,此时即可进入supervisor的管理命令行接口,如下:
$ supervisorctl
myserver RUNNING pid 15297, uptime 0:00:27
mysupervisor> ?
default commands (type help <topic>):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version
mysupervisor>
远程管理
supervisorctl -s http://<ip>:9999 -u admin -p Letmein status myserver
Web接口
可以使用浏览器访问 http://:9999 来通过web接口管理服务。
转载请以链接形式标明本文地址
遇到的问题

解决方案:
首先你要让文件有能够执行的权限,比如你的文件是a.sh那么你可以
chmod +x a.sh
然后运行文件就可以了
./a.sh
这样运行是a.sh在当前工作目录,如果文件没在当前目录,那么就需要用绝对路径来执行,比如
/opt/a.sh
/opt/test/a.sh

解决方案:
重启进程
使用Supervisor管理Linux进程的更多相关文章
- celery和supervisor配合使用,实现supervisor管理celery进程
在这里我选择redis作为celery异步任务的中间人,系统选择CentOS6.5 64位.redis.celery和supervisor的安装参见官方文档. 安装完毕后: 1, 创建celery的实 ...
- Daemontools和Supervisor管理linux常驻进程
linux主要使用supervise来管理常驻进程.基于supervise的两个比较重要的工具是Daemontools和Supervisor. 实际上,supervise也算Daemontools的一 ...
- 使用Supervisor管理Celery进程。
讲过一篇celery的,但是celery启动后并不是daemon的,在生产环境中这肯定是不可以的,那怎么办呢? 这就需要使用supervisor进行进程管理了,下面详细介绍. 一. superviso ...
- supervisor 管理uwsgi 进程
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动 重启.它是通过fork/exec的方式把这些被管理的进 ...
- supervisor管理ELK进程
1.配置supervisor #更新epel yum install epel-release yum install python-pip pip install supervisor -p /et ...
- Supervisor(Linux/Unix进程管理工具)安装与配置
参考链接:https://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyt ...
- Linux服务:使用Supervisor管理进程
一.简介 由于基本每个公司都会用到supervisor这个进程管理工具,这里简单阐述一下. Supervisor (http://supervisord.org) 是一个用Python写Linux下的 ...
- Linux进程管理工具Supervisor的安装配置
目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...
- supervisor管理进程工具配置
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...
随机推荐
- AIX查看系统安装时间和运行时长
$ lslpp -h bos.mp* --AIX系统的安装时间,可以通过bos.mp和bos.mp64文件集的安装时间得知 Fileset Level Action Status Date Time ...
- 机器学习的敲门砖:手把手教你TensorFlow初级入门
摘要: 在开始使用机器学习算法之前,我们应该首先熟悉如何使用它们. 而本文就是通过对TensorFlow的一些基本特点的介绍,让你了解它是机器学习类库中的一个不错的选择. 本文由北邮@爱可可-爱生活 ...
- 【微信小程序】:评论、回复和删除功能 -- 2017/7/14
1.理论核心:传参->pid,评论父id需要在wxml页面传递:小程序端和WEB端不同核心:前者操纵数据,后者操纵DOM元素对象 2.不废话,直接代码:wxml <view class=& ...
- 算法:辗转相除法【欧几里德算法(Euclidean algorithm)】
1.来源 设两数为a.b(a>b),求a和b最大公约数(a,b)的步骤如下:用a除以b,得a÷b=q......r1(0≤r1).若r1=0,则(a,b)=b:若r1≠0,则再用b除以 ...
- tomcat使用方法大全
一.安装tomcat之后 tomcat压缩包解压之后,进入webapps目录,可以看到如下webapp: docs文档:这是一个静态页面集,不用启动tomcat也可以阅读 examples样例 hos ...
- HTML5 API—无刷新更新地址 history.pushState/replaceState方法(例子) (转)
尽管是上面讲到的<JavaScript高级程序设计>(第二版)中提到,BOM中的location.path/query…… (window.location)在通过JavaScript更改 ...
- RMAN备份时报“ORA-19504: failed to create file”和“ORA-27038: created file already exists”
RMAN> run { > allocate channel ch00 type disk; > backup format '/dbbackup/db_%T' database; ...
- oracle字符串处理函数--待整理
http://www.cnblogs.com/xd502djj/archive/2010/08/11/1797577.html http://blog.csdn.net/qq373591361/art ...
- spring3.0.6+hibernate3升级spring4.1.6+hibernate4.3遇到的问题
1.下面这三个包,在hibernate4中已经废弃了,因为都直接用session来进行很好的事务管理 import org.springframework.orm.hibernate3.Hiberna ...
- C# 获取方法内参数名称
public partial class Main : Form { public Main() { foreach(var parameter in typeof(Main).GetMethod(& ...