Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

时间:2022-05-25 14:01:28

Linux常见应用服务配置模式nginx和supervisor:采用主配置文件+项目配置文件

安装(如果使用pip安装注意看是否需要指定使用python2版本)

第一步:在Linux中使用apt-get 指令安装

sudo apt-get install supervisor

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

第二步:检查或创建主服务配置文件

输入指令:sudo supervisord  如果出现以下内容说明没有主配置文件

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

检查主配置文件 /etc/supervisor/supervisord.conf(如果不存在就需要创建)

创建方法:使用命令生成一个主配置文件

sudo echo_supervisord_conf > /etc/supervisor/supervisord.conf

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

这个命令比较特殊,因为要使用root用户权限。所以我们先把supervisord.conf 文件先生成到当前目录下(项目根目录下)。

 echo_supervisord_conf > supervisord.conf

 然后在创建一个文件夹 mkdir deploy 把上面创建的supervisord.conf主进程文件移动到这个文件夹中(这个目录也可以通过pycharm在项目的根目录下创建也可以)

 Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

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

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

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

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

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

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

现在我们需要把这个主配置文件复制到 /etc/supervisor/supervisord.conf

sudo cp deploy/supervisord.conf /etc/supervisor/  

然后使用 ls -l /etc/supervisor/ 命令查看是否已经复制过去了。

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

注意:当我们项目中supervisord.conf文件进行了编辑修改,我们都需要再次执行 sudo cp deploy/supervisord.conf /etc/supervisor/ 命令。(因为要保持项目中的supervisord.conf文件和 /etc/supervisor/supervisord.conf文件夹中的supervisord.conf文件一致)

第三步:检查supervisord运行状态

使用 ps -ef|grep super指令查看首次安装应该只有下面一个进程

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

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

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

 第四步:配置项目配置文件

在项目的deploy文件夹中创一个项目配置文件tudo_super.conf(随便命名)

参数说明看备注。

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

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

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

在Linux中执行指令:sudo cp deploy/tudo_super.conf /etc/supervisor/conf.d/

sudo cp deploy/tudo_super.conf /etc/supervisor/conf.d/

  

查看是否已经复制过去了

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

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

注意命令是否需要root权限 就是加不加sudo

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

通过 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/

启动成功:

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

这样我们的项目通过supervisor成功启动起来了。

supervisorctl 命令介绍

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

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

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

注意:这时候你修改了项目中的主配置文件,不要忘记同步/etc/supervisor/supervisord.conf 文件 ,在Linux系统中直接执行复制命令:sudo cp deploy/supervisord.conf /etc/supervisor/ 

然后重启 supervisor,打开页面输入地址127.0.0.1:9001 回车即可。

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程

Python学习笔记【Supervisor】:使用Supervisor监控Tornado进程的更多相关文章

  1. python学习笔记-(十三)线程、进程、多线程&多进程

    为了方便大家理解下面的知识,可以先看一篇文章:http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 线程 1.什么是线程? ...

  2. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

  3. Deep learning with Python 学习笔记(8)

    Keras 函数式编程 利用 Keras 函数式 API,你可以构建类图(graph-like)模型.在不同的输入之间共享某一层,并且还可以像使用 Python 函数一样使用 Keras 模型.Ker ...

  4. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  5. Deep learning with Python 学习笔记(1)

    深度学习基础 Python 的 Keras 库来学习手写数字分类,将手写数字的灰度图像(28 像素 ×28 像素)划分到 10 个类别 中(0~9) 神经网络的核心组件是层(layer),它是一种数据 ...

  6. Python 学习笔记(下)

    Python 学习笔记(下) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(下) 函数设计与使用 形参与实参 ...

  7. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  8. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  9. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  10. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

随机推荐

  1. jquery 监听常用监听方法

    最近在做网站开发,需要用到不少js的知识.之前学过现在重新来看,发现还真忘了不少~~ 在使用基于bootstrap,或者基于 jquery 的插件时,如过没有出现预期效果 请最先检查下是否优先载入的 ...

  2. programing Python --Sys module

    Recall that every python module has a built_in __name__ variable that python sets to the __main__ st ...

  3. Android 通过http访问服务器

    目前Android 与服务器交互有两种方式:1.Socket 2. Http : 但由于Http的封装性以及性能比socket要好,所以推荐使用http方式和服务器交互: 通过http访问服务器有三种 ...

  4. 第一次QQ群视频教育有感

    标题:第一次QQ群视频教育有感 作者:丁又专, 时间:2014.08.16     教育的目的:启示学生心智,发现个人优势,激发探索欲望.     今天早上看到 中国大学MOOC<文献管理与信息 ...

  5. IDL和生成代码分析

    IDL:接口描述语言 这里使用thrift-0.8.0-xsb这个版本来介绍IDL的定义以及简单实例分析. 1. namespace 定义包名 2.struct 结构体,定义服务接口的参数和返回值用到 ...

  6. Stanford CS224N 第二课: word2vec详细介绍

    word2vec模型 word2vec 模型有两种: Continuous Skip-gram Model 和 Continuous Bag of Words Model (CBOW). 本文主要讲解 ...

  7. Calendar用法随笔

    平时在处理时间问题的时候,一般会想到用java.util.Date类型,在使用倒时间的运算的时候,就不是很方便,找找到了java.util.Calendar类,中文意思是“日历”,以下就是自己对这个类 ...

  8. 【BZOJ1211】【HNOI2004】树的计数 prufer序列

    题目描述 给你\(n\)和\(n\)个点的度数,问你有多少个满足度数要求的生成树. 无解输出\(0\).保证答案不超过\({10}^{17}\). \(n\leq 150\) 题解 考虑prufer序 ...

  9. &period;NET Core下的Socket示例&period;

    About.schtml中的代码 @{ ViewData["Title"] = "About"; } <h2>@ViewData["Tit ...

  10. python:浅拷贝与深拷贝

    1,“相等”与“相同” 我们先赋值三个变量a, b, c: a = [1, 2, [1, 2]] b = [1, 2, [1, 2]] c = a 判断一下‘相等’: a == b  返回 True ...