supervisor    是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

说白了,它真正有用的功能是俩个将非daemon(守护进程)程序变成deamon方式运行对程序进行监控,当程序退出时,可以自动拉起程序。

但是它无法控制本身就是daemon的服务。

1,安装Supervisor

yum install epel-release
yum install -y supervisor

2,生成配置文件

supervisord -c /etc/supervisord.conf 

然后修改配置文件 vim /etc/supervisord.conf

将web服务打开,需要注意ip地址要写*,否则外网访问不了,而username和password就是登录服务页面的用户名和密码,可以改的复杂一点,另外阿里云也需要向外网暴露一下9001端口

[inet_http_server]         ; inet (TCP) server disabled by default
port=*:9001 ; (ip_address:port specifier, *:port for all iface)
username=user ; (default is no username (open server))
password=123 ; (default is no password (open server))

然后添加uwsgi服务的配置

[program:mypro]
command =uwsgi /usr/local/bin/uwsgi --ini /root/js_back/js_back_uwsgi.ini ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = false ; 在 supervisord 启动的时候也自动启动
stopsignal=QUIT
user=root
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
startretries = 3 ; 启动失败自动重试次数,默认是 3
autorestart = true ; 程序异常退出后自动重启
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile = /root/js_back_uwsgi.log
stderr_logfile = /root/js_back_err.log

最后我们知道,Supervisord只能控制非守护进程,而uwsgi本身就具备守护进程的配置,所以需要修改项目的uwsgi配置,将守护进程配置注掉 vim js_back_uwsgi.ini

[uwsgi]

chdir           = /root/js_back
module = js_back.wsgi
master = true
processes = 3
socket = 0.0.0.0:8001
vacuum = true
pythonpath = /usr/bin/python3
pidfile = /root/js_back/js_back.pid
#注释掉daemonize模式,因为Supervisor无法控制守护进程服务
#daemonize = /root/js_back/uwsgi.log

 启动服务

supervisord -c /etc/supervisord.conf

如果想杀死服务可以输入命令

killall -s INT /usr/bin/python

最后访问服务管理界面 http://ip:9001,就可以管理你服务器上的服务
 


Centos7.6上部署Supervisor来监控和操作各类服务的更多相关文章

  1. CentOS7服务器上部署深度/机器学习环境推荐首选anaconda3

    CentOS7服务器上部署深度/机器学习环境推荐首选anaconda3,亲测~~ 因为可以创建不同的环境版本或虚拟环境 CentOS7服务器安装anaconda3后,CentOS7服务器开启后自动将a ...

  2. 在centos7.6上部署前后端分离项目Nginx反向代理vue.js2.6+Tornado5.1.1,使用supervisor统一管理服务

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_102 这一次使用vue.js+tornado的组合来部署前后端分离的web项目,vue.js不用说了,前端当红炸子鸡,泛用性非常广 ...

  3. CentOS7系统上部署.net core程序

    一.准备工作 首先安装 xshell 和 xftp ,前者用于SSH连接Linux服务器,后者用于FTP上传下载文件. xshell和xftp个人使用是免费的,下载地址 之后分别输入用户名和密码登录主 ...

  4. 【Linux】在docker上部署grafana+zabbix监控实录

    -------------------------------------------------------------------------------------------------   ...

  5. CentOS7服务器上部署Oracle客户端

    环境 操作系统: CentOS7.2.1511 x86_64 准备安装包 在这个网站:https://www.oracle.com/technetwork/topics/linuxx86-64soft ...

  6. 在centos7.6上部署.netcore 3.0 web程序

    首先需要一个全新的centos系统. 第一步:按照微软官方文档配置.netcore环境: https://dotnet.microsoft.com/download/linux-package-man ...

  7. CentOS7.3上部署简单的网站(Tomcat)

    本文转载自:沙师弟专栏 https://blog.csdn.net/u014597198/article/details/79649219 [ 感谢郭大大 ] 服务器版本:CentOS 7.3 64 ...

  8. 用ansible2.5在Centos7.2上部署OpenShift3.9(转)

    1.环境: 主机名      ip                   角色 master    10.2.1.198      master node1     10.2.1.174      no ...

  9. Centos7.2 上部署 FastDFS_V5.05

    1.安装gcc (编译时需要) [root@localhost~]# yum -y install gcc gcc-c++ 2.安装libevent ,FastDFS依赖libevent库; [roo ...

随机推荐

  1. 「刷题笔记」哈希,kmp,trie

    Bovine Genomics 暴力 str hash+dp 设\(dp[i][j]\)为前\(i\)组匹配到第\(j\)位的方案数,则转移方程 \[dp[i][j+l]+=dp[i-1][j] \] ...

  2. [翻译自官方]什么是RDB和AOF? 一文了解Redis持久化!

    ​概述 本文提供Redis持久化技术说明,  建议所有Redis用户阅读. 如果您想更深入了解Redis持久性原理机制和底层持久性保证, 请参考文章 揭秘Redis持久化: http://antire ...

  3. moviepy AudioClip帧处理ValueError: The truth value of array with more than one element is ambiguous

    ☞ ░ 前往老猿Python博文目录 ░ 一.环境 操作系统:win7 64位 moviepy:1.0.3 numpy:1.19.0 Python:3.7.2 二.应用代码及报错信息 程序代码 if ...

  4. 老猿学5G扫盲贴:N6接口用户平面协议栈对应的网络分层模型

    在网络通信模型中,都对应有分层的网络结构,如开放式系统互联(OSI)的七层模型(物理层.数据链路层.网络层.传输层.会话层.表示层和应用层)以及TCP/IP四层(网络接口层.网络层.传输层和应用层)模 ...

  5. Python中的enumerate函数的作用

    enumerate函数是将一个可迭代对象中元素,按元素顺序每个增加一个索引值,将其组成一个索引序列,利用它可以同时获得索引和值,这样做的目的是为了将一个可迭代对象中元素组成一个"索引,值&q ...

  6. 第7章 Python类型、类、协议目录

    第7.1节 面向对象程序设计的相关知识 第7.2节 关于面向对象设计的一些思考 第7.3节 Python特色的面向对象设计:协议.多态及鸭子类型 第7.4节 Python中与众不同的类 第7.5节 揭 ...

  7. 【Azure Developer】VS Code运行Java 版Azure Storage SDK操作Blob (新建Container, 上传Blob文件,下载及清理)

    问题描述 是否可以用Java代码来管理Azure blob? 可以.在代码中加入azure-storage-blob依赖.即可使用以下类操作Azure Storage Blob. BlobServic ...

  8. TMOOC 1969 开锁

    update on 2020.2.28 时隔近日重新想这道题,其实复杂度正确的解法是 可持久化 01 Trie. 考虑对于每一个 \(a[i]\),考虑能将它作为最大值的最大包容区间 \([l, r] ...

  9. ACM里的期望和概率问题 从入门到精通

    起因:在2020年一场HDU多校赛上.有这么一题没做出来. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6829 题目大意:有三个人,他们分别有X,Y ...

  10. centos7 mysql 自动补全

    1 yum -y install epel-release #配置erel源 2 yum -y install python-pip 3 pip install mycli #用pip安装 可能会出现 ...