前言

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

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

  • 定时脚本的启动、重启、关闭和日志监控
  • swoole的启动、重启、关闭和日志监控 (众所周知,swoole大部分的特性都只能在cli中运行)
  • redis的启动、重启、关闭和日志监控 (redis自身未提供类似phpmyadmin的后台可视化工具)
  • laravel中的队列、一些自动化的脚本、workman等等的脚本

一般都使用 &test.sh 让其来保证在后台运行,但在很多情况下,无法对脚本个人化的监控。这时你可能就需要 Supervisor 来帮助你。你大可把它当作你的unix系统的可视化管理后台。下面来让我们见证它的强大之处。

安装

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


apt-get -y install python-setuptools
easy_install supervisor

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

配置

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

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

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

部分配置文件信息表

名称 注释 栗子
inet_http_server[port] 内置管理后台 *:8888
inet_http_server[username] 管理后台用户名 admin
inet_http_server[password] 管理后台密码 admin
include[files] 设置进程配置文件格式 /etc/supervisor/supervisor.d/*.ini

运行

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为我们提供了接口

Supervisor 从入门到放弃的更多相关文章

  1. CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

    前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...

  2. [精品书单] C#/.NET 学习之路——从入门到放弃

    C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...

  3. OpenStack从入门到放弃

    OpenStack从入门到放弃 目录: 为何选择云计算/云计算之前遇到的问题 什么是云计算 云服务模式 云应用形式 传统应用与云感知应用 openstack及其相关组件介绍 flat/vlan/gre ...

  4. 绕过校园网的共享限制 win10搭建VPN服务器实现--从入门到放弃

    一.开篇立论= =.. 上次说到博主在电脑上搭建了代理服务器来绕过天翼客户端的共享限制,然而经过实际测试还不够完美,所以本着生命不息,折腾不止的精神,我又开始研究搭建vpn服务器= =... (上次的 ...

  5. 《区块链:从入门到放弃》之obc安装步骤

    obc安装步骤 朋友们可能会好奇,厨师不研究菜谱怎么改研究兵法了,哈哈,我原本是app出身,最近被安排去预研区块链和比特币技术,2个月下来,颇有斩获.期间得到IBM的CC同学指导我一步一步安装obc的 ...

  6. win10搭建代理服务器实现绕过校园网的共享限制--从入门到放弃

    博主所在学校特别坑爹,校园网被电信一家垄断了,而且最恶心的还是电信要求一条网线只能供一台电脑上网,不许接路由器共享网络= =- (还有电信2M价格是380+每年,20m是500每年,而且网速都很慢= ...

  7. WPF从入门到放弃系列第二章 XAML

    本文是作者学习WPF从入门到放弃过程中的一些总结,主要内容都是对学习过程中拜读的文章的整理归纳. 参考资料 XAML 概述 (WPF):https://msdn.microsoft.com/zh-cn ...

  8. Android -- 带你从源码角度领悟Dagger2入门到放弃

    1,以前的博客也写了两篇关于Dagger2,但是感觉自己使用的时候还是云里雾里的,更不谈各位来看博客的同学了,所以今天打算和大家再一次的入坑试试,最后一次了,保证最后一次了. 2,接入项目 在项目的G ...

  9. Android -- 带你从源码角度领悟Dagger2入门到放弃(二)

    1,接着我们上一篇继续介绍,在上一篇我们介绍了简单的@Inject和@Component的结合使用,现在我们继续以老师和学生的例子,我们知道学生上课的时候都会有书籍来辅助听课,先来看看我们之前的Stu ...

随机推荐

  1. 使用Python生成源文件的两种方法

    利用Python的字符串处理模块,开发者能够编写脚本用来生成那些格式同样的C.C++.JAVA源程序.头文件和測试文件,从而避免大量的反复工作. 本文概述两种利用Python string类生成jav ...

  2. Online Object Tracking: A Benchmark 论文笔记

    Factors that affect the performance of a tracing algorithm 1 Illumination variation 2 Occlusion 3 Ba ...

  3. ubuntu修改capslock键,单独使用为esc,组合使用时为ctrl+

    一.下面这部分可以将capslock与ctrl互换 将下面的代码放入-/.Xmodmap中, remove Lock = Caps_Lock remove Control = Control_L ke ...

  4. org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的systemPropertiesModeName属性

    转自:https://www.cnblogs.com/huqianliang/p/5673701.html 使用PropertyPlaceholderConfigurer类载入外部配置 在Spring ...

  5. [牛客挑战赛 30D] 小A的昆特牌 解题报告 (组合数学)

    interlinkage: https://ac.nowcoder.com/acm/contest/375/D description: solution: 我们枚举步兵的数量$x$,还剩下$S-x$ ...

  6. firewalld使用

    1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status f ...

  7. Nginx实现负载均衡 + Keepalived实现Nginx的高可用

    前言 使用集群是大中型网站解决高并发.海量数据问题的常用手段.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求 ...

  8. 28. Implement strStr()[E]实现strStr()

    题目 Implement strStr(). Return the index of the first occurrence of needle in haystack, or -1 if need ...

  9. java中字符串比较==和equals

    1 总体来说java中字符串的比较是==比较引用,equals 比较值的做法.(equals 对于其他引用类型比较的是地址,这是因为object的equals方法比较的是引用),但是不同的声明方法字符 ...

  10. Hadoop MapReduce编程 API入门系列之最短路径(十五)

    不多说,直接上代码. ======================================= Iteration: 1= Input path: out/shortestpath/input. ...