博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
supervisor安装概述
阅读量:6835 次
发布时间:2019-06-26

本文共 2798 字,大约阅读时间需要 9 分钟。

经过这几天的折腾,我的supervisor终于可以正常的运行了。有折腾就有收获,这里我就来说说supervisor中遇到的问题。

首先,我先说一下supervisor的安装过程吧!这个相信google就一堆,这里主要讲supervisor的配置部分。

  • 环境:ubuntu16.04 python2.7 准备安装supervisor3.2

  • ubuntu安装直接运行 apt-get install supervisor 就可以了。

  • 以命令行的方式创建默认的配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

  • 查看配置文件vim /etc/supervisor/supervisord.conf 这里有个对配置文件有比较详细的讲解,参考这里就可以了

  • 接下来就说说配置中几个需要get到的点。

    首先是这两个服务器端配置项:

[unix_http_server]          ; supervisord的unix socket服务配置file=/tmp/supervisor.sock   ; socket文件的保存目录;chmod=0700                 ; socket的文件权限 (default 0700);chown=nobody:nogroup       ; socket的拥有者和组名;username=user              ; 默认不需要登陆用户 (open server);password=123               ; 默认不需要登陆密码 (open server)[inet_http_server]         ; supervisord的tcp服务配置;port=127.0.0.1:9001        ; tcp端口;username=user              ; tcp登陆用户;password=123               ; tcp登陆密码

说明一下,supervisor是服务器端和客服端模式运行的。 客服端负责向服务器端发送命令。 服务器端负责根据客服端的命令和配置文件对进程进程调度。

而服务器端和客服端有两种通信模式,一种是通过上述unix_http_server 配置的tcp套接字通信。 一种是通过inet_http_server配置的端口通信模式。 如果有接触过php-fpm和nginx之间的通信的话,这里是一样的道理。

如果supervisor要正常工作,那unix_http_server和inet_http_server两个只要有一个配置正确就可以了,然后客户端supervisorctl配置同样的通信模式就可以了,这个我后面说。

但是这里我们两个都给配置起来。原因是:

  • 客户端连接安全起见我们用tcp链接的方式配置,所以unix_http_server是要配置的。

  • 还有一个模式inet_http_server这个配置好了。启动后会启动一个http_server管理界面,我可以通过的网页方式进行管理。

要外网可以访问,上述配置中port项要改成 port=0.0.0.0:9001或者port=*:9001,这个学过网络工程师的懂。

接下来,讲到客户端配置模块[supervisorctl],默认的配置是:

serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socketusername=chris              ; 如果设置应该与http_username相同password=123                ; 如果设置应该与http_password相同;prompt=mysupervisor         ; 命令行提示符,默认"supervisor";history_file=~/.sc_history  ; 命令行历史纪录

这里客户端的配置就是为了和服务器端对接,所以你可以看到serveurl有两种形式,一种是tcp,一种是端口,对应我们上面讲到的服务器端的两种方式,所以这里我们使用tcp方式把第一条去掉注释就可以了。

同时我们这里username和password要配置成和上面unit_http_server一样的,跟我们上QQ一样的道理,用户名密码和上面配置不匹配了,这个superctl就和服务器端通信不了无法正常工作了。

3. 最后讲到supervisor.conf中需要修改的最后一个地方 [include] ,默认是

;[include];files = relative/directory/*.ini

这里我们修改成:

[include]files = /etc/supervisor/conf.d/*.conf

这个路径下配置着我们需要管理的各个进程的配置。

我们可以新建一个example.conf
配置如下

[program:shadowsocks]command=ssserver -c /etc/shadowsocks.jsonautostart=trueautorestart=trueuser=nobody

然后启动过程:

我们先启动服务器端:

supervisord -c /etc/supersivor/supervisord.conf

客服端的使用有两种方法:

  1. 直接控制台使用。

获得所有程序状态 supervisorctl status关闭目标程序 supervisorctl stop spider启动目标程序 supervisorctl start spider关闭所有程序 supervisorctl shutdown
  1. 进入supervisorctl客户端交互模式:

$ supervisorctlsupervisor> helpdefault commands (type help 
):=====================================add exit open reload restart start tailavail fg pid remove shutdown status updateclear maintail quit reread signal stop versionsupervisor> start example

转载地址:http://usxkl.baihongyu.com/

你可能感兴趣的文章
玩转Go语言之闭包
查看>>
iOS 控制器的实例 的block循环引用
查看>>
用委托者模式实现的多类型Adapter
查看>>
大数据技术于应用 可视化图表的开发应用
查看>>
说说MySQL索引相关
查看>>
小猿圈Java学习之程序员需要注意的5项守则
查看>>
CentOS 6.5安装Redis-2.8.23
查看>>
Django模板和变量的使用
查看>>
eyoucms上传不了logo,重试总是失败
查看>>
确认下眼神,这是你需要的MES软件吗?
查看>>
PTGUI全景合成软件使用教程之蒙版的使用
查看>>
虚拟机windows7及安装系统
查看>>
Altas 2.2.1 在 Ubuntu 14.04 LTS 下编译安装
查看>>
电影下载网站收集
查看>>
linux用户管理
查看>>
安装CentOS6网络配置问题
查看>>
JDK中的设计模式应用实例
查看>>
刘知远:让计算机听懂人话
查看>>
什么是DevOps?
查看>>
基于Spring AOP实现可控的请求日志保存,自定义注解
查看>>