Supervisor 的配置与使用
环境:ubuntu 14.04 lts http://supervisord.org/
liunx 下有很多守护进程的工具,如 nohup,screen,supervisor 等,supervisor 是用Python开发的进程管理程序,能将一个普通的命令行进程变为后台daemon,异常退出时能自动重启。
#安装
sudo apt-get install supervisor
#进程
/usr/bin/supervisord -- supervisor服务守护进程
/usr/bin/supervisorctl -- supervisor控制台进程
在/etc/supervisor目录中存放着supervisor的配置文件:其中conf.d是一个子目录,其中存放着supervisor监管的进程的配置信息,一个进程有一个对应的配置文件supervisord.conf是supervisor的主配置文件,定义服务名称以及接口等等。
#配置
现在要用supervisor监控一个脚本进程,在/etc/supervisor/conf.d中新建一个关于这个脚本进程的配置文件[我部署了python 与 golang的 web 程序]
cd /etc/supervisor/conf.d
touch gogs.conf stock.conf
[program:gogs]
command=/opt/gogs/scripts/start.sh
directory=/opt/gogs
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/gogs_supervisor_out.log
stderr_logfile=/var/log/supervisor/gogs__supervisor_err.log
[program:stockhq]
command=python3 __stockhq.py
directory=/opt/stockhq/data
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/stockhq_err.log
stdout_logfile=/var/log/stockhq_out.log
#保存
:qw
#启动服务
sudo service supervisor stop
sudo service supervisor start
#配置更改生效
supervisorctl update 或者用supervisorctl reload 重新重新启动supervisor程序
#查看状态
supervisorctl status
#停止所有gogs
supervisorctl stop all
#启动gogs
supervisorctl start gogs
#查看3000端口进程
lsof -i:3000
netstat -anl | grep "3000"
#查看某一端口是否开放
lsof -i:80
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)
# 查看进程
sudo ps -ef | grep supervisor
#杀死进程
kill -9 pid
#开启http的UI控制台
修改主配置文件
vim /etc/supervisor/supervisord.conf,添加如下内容:
[inet_http_server]
port = 0.0.0.0:9001 #IP和绑定端口
username = irving #管理员名称
password = 123456 #管理员密码
这样,在浏览器中输入配置中写的地址和端口号,输入配置好的用户名和密码,便可以看到基于网页的控制台
界面。可以查抗 supervisor 监控信息进程的日志等。
服务器是否有外网可访问,配置一下你的web服务器启动监听0.0.0.0(而不是127.0.01)就可以。
Supervisor 的配置与使用的更多相关文章
- laravel 守护进程Supervisor的配置
安装Supervisor Supervisor是Linux系统中常用的进程守护程序.如果队列进程queue:work意外关闭,它会自动重启启动队列进程.在Ubuntu安装Supervisor 非常简单 ...
- .Net Core Linux部署之进程守护 Supervisor 安装配置
1.Supervisor 安装 //安装easy_install yum install python-setuptools //安装Supervisor easy_install superviso ...
- supervisor program配置实例
program 配置 上面我们已经把 supervisrod 运行起来了,现在可以添加我们要管理的进程的配置文件.可以把所有配置项都写到 supervisord.conf 文件里,但并不推荐这样做,而 ...
- supervisor的配置
看了下文档,比较多.http://www.supervisord.org/ 抱着试试又不会怀孕的心态,trying,碰了几鼻子灰,记录如下, 方便大家 1. 安装 easy_install super ...
- supervisor安装配置与使用
supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...
- supervisor 安装 配置 及 使用
supervisor是微软官方推荐的一个工具,传送门, 所以我们也使用这个工具来管理我们的asp.net core应用进程 服务器环境:ubuntu14.04 x64 安装 apt-get ...
- supervisor安装配置
1.安装 下载:https://codeload.github.com/Supervisor/supervisor/zip/3.1.3 2.安装 .zip cd supervisor- python ...
- supervisor 安装配置
Supervisor介绍 Supervisor 允许其用户在UNIX类操作系统上控制多个进程. 块如下: 方便 需要为每个进程实例编写rc.d脚本通常是不方便的. rc.d脚本是进程初始化/自动启动/ ...
- supervisor 工具 配置
配置supervisor工具,管理django后台 supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可 ...
随机推荐
- Linux下好玩的命令
1.yes命令,输出很多个y,可以用来对付选择很多y/n的应用. 2.banner命令,打印字符标题,就是用字符拼出大字来: 3.ddate命令,把日历转换成其他的什么历: 4.fortune命令,随 ...
- HTML5服务器端推送事件 解决PHP微信墙推送问题
问题描述 以前的文章中<PHP微信墙制作,开源>已经用PHP搭建了一个微信墙获取信息的服务器,然后我就在想推送技术应该怎么解决,上一篇已经用了.NET 的signalr做了一个微信墙,PH ...
- EmberJs之3W
写在前面 最近比较忙,换了新工作还要学习很多全新的技术栈,并给自己找了很多借口来不去坚持写博客.常常具有讽刺意味的是,更多剩下的时间并没有利用而更多的是白白浪费,也许这就是青春吧,挥霍吧,这不是我想要 ...
- [UML]UML系列——状态机图statechart diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- node-webkit教程(15)当图片加载失败的时候
在node-webkit教程(14)禁用缓存中,简单讲了当前禁用缓存的几种方法. 在实际开发过程中,我遇到了一个因为缓存引起的诡异的问题.应用场景如下: 在一个编辑器里,不停的向画布上添加svg或者其 ...
- Wijmo 2016 V2 强势发布!
Angular 2 支持 Wijmo 对 Angular 2 提供了全面的支持.我们一直在紧跟Angular 2 开发团队的步伐,对其发布的最新候选版本提供支持. 了解更多关于Angular 2 的支 ...
- 插件~NuGet与packages管理项目的包包
NuGet NuGet是一个工具,已经被集成到VS开发环境里,直接使用它可以快速安装第三方的包包,包包就是一组DLL和资源,开发者把它们打包一个包包,或者叫做package,而我们使用nuget可以将 ...
- paip.cache 缓存架构以及性能提升总结
paip.cache 缓存架构以及性能提升总结 1 缓存架构以及性能(贯穿读出式(LookThrough) 旁路读出式(LookAside) 写穿式(WriteThrough) 回写式 ...
- 电影成生活O2O必争之地,破局之战就此拉开
这一次的两会过后,互联网最流行的一个词恐怕当属“互联网+”.尤其是总理关于“以互联网为载体.把线上线下互动的新兴消费搞得红红火火”的一席话,更是让国内的O2O从业者兴奋不已.百度李彦宏在两会接受记者采 ...
- java匿名对象_面向对象
class Student{ public void tell(){ System.out.println("Hello jikexueyuan"); } public void ...