Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程
Linux常见应用服务配置模式nginx和supervisor:采用主配置文件+项目配置文件
安装(如果使用pip安装注意看是否需要指定使用python2版本)
第一步:在Linux中使用apt-get 指令安装
sudo apt-get install supervisor

第二步:检查或创建主服务配置文件
输入指令:sudo supervisord 如果出现以下内容说明没有主配置文件

检查主配置文件 /etc/supervisor/supervisord.conf(如果不存在就需要创建)
创建方法:使用命令生成一个主配置文件
sudo echo_supervisord_conf > /etc/supervisor/supervisord.conf

这个命令比较特殊,因为要使用root用户权限。所以我们先把supervisord.conf 文件先生成到当前目录下(项目根目录下)。
echo_supervisord_conf > supervisord.conf
然后在创建一个文件夹 mkdir deploy 把上面创建的supervisord.conf主进程文件移动到这个文件夹中(这个目录也可以通过pycharm在项目的根目录下创建也可以)


查看主配置文件supervisord.conf 检查include配置 没有就加上其它项目配置文件目录地址。

Settings->Editor->FileTypes->Ini:点击加号添加文件后缀

现在我们已经把著配置文件已经创建好了,但是现在这个主配置文件是在我们项目的根目录下结构是 如下:

现在我们需要把这个主配置文件复制到 /etc/supervisor/supervisord.conf
sudo cp deploy/supervisord.conf /etc/supervisor/
然后使用 ls -l /etc/supervisor/ 命令查看是否已经复制过去了。

注意:当我们项目中supervisord.conf文件进行了编辑修改,我们都需要再次执行 sudo cp deploy/supervisord.conf /etc/supervisor/ 命令。(因为要保持项目中的supervisord.conf文件和 /etc/supervisor/supervisord.conf文件夹中的supervisord.conf文件一致)
第三步:检查supervisord运行状态
使用 ps -ef|grep super指令查看首次安装应该只有下面一个进程

启动一个进程:supervisord 再次查看

第四步:配置项目配置文件
在项目的deploy文件夹中创一个项目配置文件tudo_super.conf(随便命名)
参数说明看备注。

然后将这个项目配置文件复制到 /etc/supervisor/conf.d/

在Linux中执行指令:sudo cp deploy/tudo_super.conf /etc/supervisor/conf.d/
sudo cp deploy/tudo_super.conf /etc/supervisor/conf.d/
查看是否已经复制过去了

最后重新启动 (这里可能有不同错误,需要根据日志去排查bug 向我这里就是因为项目配置文件里路径写错了。)
注意命令是否需要root权限 就是加不加sudo


通过 ps -ef|grep python 指令查看并没有启动我项目配置的8000端口的程序
需要通过sudo supervisorctl status指令查看,这时候发现出错了,可以结合配置的日志路径去查看输出的日志。解决bug
通过 sudo supervisorctl start tornadoes:tornado-8000 来启动
注意:当项目中配置文件(tudo_super.conf)进行修改了,也需要复制到 /etc/supervisor/conf.d/目录下 ,
也就是必须在执行一遍复制命令:sudo cp deploy/tudo_super.conf /etc/supervisor/conf.d/
启动成功:

这样我们的项目通过supervisor成功启动起来了。
supervisorctl 命令介绍

使用web窗口管理supervisorctl(在主配置文件中修改如下配置)

注意:这时候你修改了项目中的主配置文件,不要忘记同步/etc/supervisor/supervisord.conf 文件 ,在Linux系统中直接执行复制命令:sudo cp deploy/supervisord.conf /etc/supervisor/
然后重启 supervisor,打开页面输入地址127.0.0.1:9001 回车即可。

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程的更多相关文章
- python学习笔记-(十三)线程、进程、多线程&多进程
为了方便大家理解下面的知识,可以先看一篇文章:http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 线程 1.什么是线程? ...
- python学习笔记(九)——线程与进程
一.线程 Python 中为我们提供了两个模块来创建线程. _thread threading thread 模块已被废弃.用户可以使用 threading 模块代替.所以,在 Python 中不能再 ...
- Deep learning with Python 学习笔记(9)
神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...
- Deep learning with Python 学习笔记(8)
Keras 函数式编程 利用 Keras 函数式 API,你可以构建类图(graph-like)模型.在不同的输入之间共享某一层,并且还可以像使用 Python 函数一样使用 Keras 模型.Ker ...
- python学习笔记目录
人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...
- Deep learning with Python 学习笔记(1)
深度学习基础 Python 的 Keras 库来学习手写数字分类,将手写数字的灰度图像(28 像素 ×28 像素)划分到 10 个类别 中(0~9) 神经网络的核心组件是层(layer),它是一种数据 ...
- Python 学习笔记(下)
Python 学习笔记(下) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(下) 函数设计与使用 形参与实参 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- VS2013中Python学习笔记[Django Web的第一个网页]
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...
- python学习笔记之module && package
个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...
随机推荐
- Day06(类包、内部类)
在static静态方法中能直接调用的方法只能是静态方法.要想调用其它非静态方法,需要借助对象. 类包:是Java提供的一种管理类文件的机制.可以解决类名冲突问题,在开发庞大应用程序时帮助开发人员管理庞 ...
- nginx 平滑更新
1.更新nginx源 #centos6的nginx源 #centos7的话吧url 的6改为7就行了 vim /etc/yum.repos.d/nginx.repo [nginx] name=ngin ...
- POSIX信号量
DESCRIPTION POSIX 信号量允许进程间和线程间同步他们的操作. 一个信号量是一个整型(integer),其值不能小于0. 信号量允许2中操作:给信号量的值加1(sem_post); 给信 ...
- vue分类筛选方法,filer
使用computed 方法来过滤筛选数据;也可以使用methods 方式来筛选过滤数据 代码如下: <body> <div id="app"> <ul ...
- Random Erasing Augmentation(REA)
为了增强模型的泛化的性能,一般的手段有数据增强和正则化方法(如dropout,BN),而用于数据增强的一般方法有:随机裁剪.随机水平翻转.平移.旋转.增加噪音和生成网络方法等(前两个方法用的最多,也最 ...
- 通过zabbix的API接口获取服务器列表
Zabbix API说明 1) 基于Web的API,作为Web前端的一部分提供,使用JSON-RPC 2.0协议 2) 身份认证Token:在访问Zabbix中的任何数据之前,需要登录并获取身份验证令 ...
- VSTO 基础随笔
1.往组合框添加条目 With Me .ComboBox1.Items .Add( "Ports" ) .Add( "Igor" ) End With 2.文本 ...
- 爬虫之requests模块
requests模块 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的 ...
- LOJ.6066.[2017山东一轮集训Day3]第二题(树哈希 二分)
LOJ 被一件不愉快的小事浪费了一个小时= =. 表示自己(OI方面的)智商没救了=-= 比较显然 二分+树哈希.考虑对树的括号序列进行哈希. 那么每个点的\(k\)子树的括号序列,就是一段区间去掉距 ...
- 无代理处理post非简单请求跨域问题
express下 在处理纯http服务post请求的时候的跨域问题 即使在服务端先加入 Access-Control-Allow-Origin: *(get即时有效) 会出现 Failed to lo ...