前言Supervisor是一个客户端/服务器系统,允许其用户在类UNIX操作系统上控制许多进程。(官方解释)

简单点来讲,就是一个监控脚本运行的工具,不过他可以统一化管理,laravel的队列文档上也有相关使用方式方法,例如定时脚本的启动、重启、关闭和日志监控

swoole的启动、重启、关闭和日志监控 (众所周知,swoole大部分的特性都只能在cli中运行)

redis的启动、重启、关闭和日志监控 (redis自身未提供类似phpmyadmin的后台可视化工具)

laravel中的队列、一些自动化的脚本、workman等等的脚本

一般都使用 &test.sh 让其来保证在后台运行,但在很多情况下,无法对脚本个人化的监控。这时你可能就需要 Supervisor 来帮助你。你大可把它当作你的unix系统的可视化管理后台。下面来让我们见证它的强大之处。程序猿的生活:【1400粉丝福利】10年架构师分享PHP进阶架构资料,助力大家都能30K​zhuanlan.zhihu.com

安装

Supervisor 有多种安装方式,我推荐其中最简单也是最容易安装的一种

apt-get -y install python-setuptools

easy_install supervisor

正如你所见,两条命令即完成安装

配置

Supervisor安装完成后,运行 echo_supervisord_conf。这将打印一个示例的Supervisor配置文件到您的终端。只要你能看到打印的配置文件内容。

Supervisor 不会自动生成配置文件。

请使用命令 echo_supervisord_conf > /etc/supervisord.conf 来生成配置文件。

部分配置文件信息表

运行

Supervisor 启动需加载配置文件

supervisord -c /etc/supervisor/supervisord.conf

停止命令是

supervisorctl shutdown

重新加载配置文件

supervisorctl reload

Supervisor 以 [program:[your_cli_name]] 以每段进程配置文件的开头,your_cli_name 则是你的进程名称,名称会显示在Supervisor后台管理工具和Supervisor cli命令输出上。我们以运行php-fpm为例

[program:php7]

command=php-fpm

哦呦,就是酱紫简单。没有过多的废话。或者运行一段shell。

[program:echo]

command=sh echo.sh

--------------------------------

echo.sh

your_name="my name zhangsan"

echo $your_name

当然laravel队列也是依旧简单

[program:laravel-worker]

command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3

当然这里只是简单的演示,让你可以快速上手,配置脚本内不仅仅只有command命令。

具体可见官方文档 http://www.supervisord.org/co...

后台

Supervisor提供的后台管理比较简单

大致功能有 重启、启动、停止进程,打印日志,清除日志等。基本上就这么几个简单的功能,当然也没有宕机报警,日志报警什么的。不过强大的Supervisor为我们提供了接口

大厂2000道面试题(含答案)程序猿的生活:PHP面试题汇总,看完这些面试题助力你面试成功,工资必有20-25K​zhuanlan.zhihu.com

接口

通过API能获取基本所有的信息,例如进程列表,某个进程的状态,进程日志。包括对进程的重启、停止、开启等操作,将Supervisor彻底集成到内部监控后台也是没有什么问题的。

脚本

最后送给朋友们一个简单的脚本,方便用于学习Supervisor

#!/bin/bash

set -x

case $1 in

'sp')

if [[ $2 == 'start' ]]; then

"supervisord -c /etc/supervisor/supervisord.conf"

elif [[ $2 == 'stop' ]]; then

"supervisorctl shutdown"

elif [[ $2 == 'restart' ]]; then

"supervisorctl shutdown"

"supervisord -c /etc/supervisor/supervisord.conf"

elif [[ $2 == 'reload' ]]; then

"supervisorctl reload"

fi

;;

esac

你可以使用这个简单的脚本快速启动、重启、关闭Supervisor

sh test.sh sp start // 启动

sh test.sh sp restart // 重启

致谢

感谢看到这里,希望本章可以帮到你。谢谢

喜欢我的文章就关注我吧,持续更新中.....

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以点击进入暗号:知乎。

supervisor管理mysql靠谱吗_Supervisor 从入门到放弃相关推荐

  1. mysql不要放docker,Docker从入门到放弃

    本文将以比较简单的的方式让大家理解docker,以平时常用到的测试环境为主,从用开始,慢慢理解docker. 0x00 用docker进行漏洞测试 0x01 docker运行busybox 0x02 ...

  2. mysql用supervisor管理_使用Supervisor管理进程

    1.  Superivisor简介: Supervisor是一个C/S系统,它允许用户在类UNIX系统上监控和管理一系列的进程.你可以把一个进程以Daemon的形式用Supervisor来管理. 2. ...

  3. 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建...

    作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...

  4. [Python]Python操作/管理Mysql学习(一)

    先确定环境是否已支持MySQLdb模块,如果没有,请安装,如下: [root@bw-vm-soft ~]# wget http://jaist.dl.sourceforge.net/project/m ...

  5. mysql进程管理,MySQL管理

    一.启动和关闭数据库 1.检查mysql是否启动 ps -ef|grep mysql 如果MySql已经启动,以上命令将输出mysql进程列表 2.启动mysql cd /usr/bin ./mysq ...

  6. mysql工具navicat用户授权_Navicat使用教程:在Navicat Premium中管理MySQL用户 - 第4部分:权限管理器工具...

    Navicat Premium 在线订购享专属优惠  立即购买>>> 第4部分:Privilege Manager(权限管理器)工具 在本系列教程中,我们一直在探索如何使用Navic ...

  7. php 管理 mysql 数据库 代码_安装并使用phpMyAdmin管理MySQL数据库_php

    学会使用基于web数据库的管理工具phpMyAdmin. 如果使用合适的工具,mysql数据库的管理就会为得相当简单.应用MySQL命令行方式需要对MySQL知识非常熟悉,对SQL语言也是同样的道理. ...

  8. 涂抹mysql 完整_涂抹mysql笔记-管理mysql服务

    $ /mysql/scripts/mysql_install_db --datadir=/mysql/data --basedir=/mysql support-files/mysql.server脚 ...

  9. mysql 查看用户权限_在Navicat Premium中管理MySQL用户 - 第4部分:权限管理器工具

    更多资源请查看:[Navicat使用教程2019.1] | [Navicat Data Modeler使用教程] 第4部分:Privilege Manager(权限管理器)工具 在本系列教程中,我们一 ...

最新文章

  1. 前端CSS预处理器Sass
  2. tinycore Network card configuration during exec bootlocal.sh
  3. SAP SMW0 上传EXCEL模板遇到的问题
  4. 转载 linux内核 asmlinkage宏
  5. spark中stage的划分与宽依赖/窄依赖(转载+自己理解/整理)
  6. 关于秒杀系统优化方向
  7. Find and Delete Files with Extension Name
  8. 比特币挖矿成本表_用算力趋势预测减半后比特币挖矿成本价
  9. python生成数字_Python生成数字图片代码分享
  10. HTML5学习笔记---Html5简单理解,发展情况...
  11. 最近一段时间网上有一些报道称35岁以后只有两种人可以幸福的老去
  12. Confluence 6 为站点启用匿名用户访问
  13. IT服务管理(一)服务的演变与整体观
  14. 小米mix2安兔兔html5跑分,小米MIX 2S跑分多少?高通骁龙845安兔兔跑分实测 (全文)...
  15. 基于遗传算法的新安江模型参数优化率定(二)
  16. ChatGPT+Midjourney实现儿童绘本故事及其插图(数字1~10的故事)
  17. [ Tensorflow学习之路 ] —— API:TF-Slim
  18. 作业20180925-2 功能测试
  19. 理清 NVIDIA,CUDA,cuDNN,nvcc 关系 CUDA 环境安装
  20. 输入一行字符,分别统计其中大写英文字母,小写英文字母,空格,数字,和其他字符的个数。

热门文章

  1. python tcl smb_Python——操作smb文件服务器(上传和下载)
  2. 【clickhouse】clickhouse 副本与分片 副本详解
  3. 90-40-010-源码-CUBE-引擎为MR写入Habse的构建
  4. Memcache 客户端
  5. 找出js里面改变cookies的代码
  6. 18张图,详解SpringBoot解析yml全流程
  7. Spring中如Service有多个实现类,它怎么知道该注入哪个ServiceImpl类?
  8. vue+Java后端进行调试时如何解决跨域问题
  9. SQL2008数据类型
  10. Linux终端登录微信,Ubuntu18.04安装微信(Linux通用)