supervisor简单配置

本节内容:

  1. supervisor简单介绍
  2. 配置内容
  3. 启动过程
  4. 错误处理
  5. 参考文章

一.supervisor简单介绍

  折腾了好几天,supervisor终于能行了,折腾死了,所以写这篇博客,把遇到的坑记下来,省的下次再弄不上

  • 环境:Ubuntu 16.04 LTS server python 2.7
  • apt-get install supervisor就能安装上了
  • 以命令行的方式创建默认配置文件  echo_supervisord_conf > /etc/supervisor/supervisord.conf   ,注意这里是保存配置的位置

二.配置内容

  打开配置文件

[unix_http_server]                                 #supervisord的unix_socket服务配置
file=/var/run/supervisor.sock                      #指定socket文件的保存目录,这里要修改成当前的目录,如果是缺省配置容易被linux清掉。
;chmod=0700                                        #socket的文件权限
;chown=nobody:nogroup                              #socket的拥有者和组名
;username=user                                     #默认不需要登录用户
;password=123                                      #默认不需要登录密码

;[inet_http_server]                                #supervisord的tcp服务设置
;port=127.0.0.1:9001                               #tcp端口
;username=user                                     #tcp登录用户
;password=123                                      #tcp登录密码

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

  而服务端和客户端有两种通信模式,一种是通过unix_http_server配置的tcp套接字,一种是通过inet_http_server配置的端口通信模式。

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

  接下来是[supervisorctl],默认的配置是:

  

[supervisorctl]serverurl=unix:///var/run/supervisor.sock           #使用socket方式
;serverurl=http://127.0.0.1:9001                  #使用指定tcp方式
;usernme=chris                                  #如果设置应该和http_username相同
;password=123                                 #如果设置应该和http_password相同
;prompt=mysupervisor                    #命令行提示符,默认是"supervisor"
;history_file=~/.sc_history                    #命令行历史记录
    

  这里客户端的配置就是为了和服务器端对接,所以你可以看到serveurl有两种形式,一种是tcp,一种是端口,对应我们上面讲到

  的服务器端的两种方式,所以这里我们使用tcp方式的时候,把第一条去掉注释就可以了。

  同时我们这里username和password要配置成和上面unit_http_server一样的,不然账号密码不一样supervisorctl就无法和服务器通信

  最后要修改[include]

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

  在这个路径下,可以配置我们的各个进程的配置

  新建一个example.conf

  配置如下:

[program:example]
command=nohup /usr/bin/python3 /root/automation_an/automaition.py >/dev/null 2>&1 &
autostart=true
autorestart=true
user=root

三.启动过程

  首先启动服务端

    supervisord -c /etc/supervisor/supervisord.conf

    systemctl start supervisord.service

  客户端使用的两种方式:

    1.直接在终端内使用

获得所有程序状态 supervisorctl status
关闭目标程序   supervisorctl stop spider
启动目标程序   supervisorctl start spider
关闭所有程序   supervisorctl shutdown

    2.进入supervisorctl客户端交互模式

$ supervisorctl

supervisor> help

default commands (type help <topic>):
=====================================
add    exit      open  reload  restart   start   tail
avail  fg        pid   remove  shutdown  status  update
clear  maintail  quit  reread  signal    stop    version

supervisor> start example

四.错误处理

  1.unix:///tmp/supervisor.sock no such file

    打开/etc/supervisor/supervisord.conf,这里把所有的/tmp路径改掉,/tmp/supervisor.sock 改成 /var/run/supervisor.sock,

    /tmp/supervisord.log改成 /var/log/supervisor.log,/tmp/supervisord.pid 改成 /var/run/supervisor.pid 要不容易被linux自动清掉,

    修改权限

    chmod 777 /var/run/

    chmod 777 /var/log

    创建supervisor.sock

    sudo touch /var/run/supervisor.sock

    sudo chmod 777 /var/run/supervisor.sock

    重启supervisord

    systemctl restart supervisord

  2.Unlinking stale socket /var/run/supervisor.sock   

    find / -name supervisor.sock

    unlink /***/supervisor.sock

五.参考文章

  supervisor安装概述    

  supervisor-Python进程管理工具

  解决unix:///tmp/supervisor.sock no such file的问题

  

原文地址:https://www.cnblogs.com/gaodp/p/9550167.html

时间: 2024-10-10 20:27:45

supervisor简单配置的相关文章

0123简单配置LNMP

简单配置LNMP不怕出现错误,就怕错误不知道出现在哪里?看日值tail -f /var/log/message -- 系统整个的日志tail -f /var/log/nginx/error.log -- 单个应用的日志http://www.cnblogs.com/make217/p/5836864.htmlhttp://www.cnblogs.com/xiaoit/p/3991037.html

Samba服务器的简单配置

案例说明: 公共目录        public   /abc            ro  允许任何人匿名访问, Daiqing1        smbdq1   /tmp/daiqing1   rw  不允许他人访问 Daiqing2        smbdq2   /tmp/daiqing2   rw  不允许他人访问 Samba服务器的简单配置,布布扣,bubuko.com

Linux安装MariaDB和简单配置

1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start mariadb 设置开机启动 systemctl enable mariadb 接下来进行MariaDB的相关简单配置 mysql_secure_installation 首先是设置密码,会提示先输入密码 Enter current password for root (enter for none):<–初

linux ntp安装简单配置

公司的一台服务器硬件坏了挂了,其中就有ntp服务端,写一下ntp服务端的简单配置. 1.首先安装ntp,centos 系统执行 yum install ntp 2.写入配置文件/etc/ntp.conf如下 restrict 192.168.18.153 mask 255.255.255.0 nomodify notrap restrict 192.168.18.0 mask 255.255.255.0 nomodify server time.pool.aliyun.com #server 1

gedit变身为编程利器的简单配置

本文由fcbruce个人原创整理,转载请注明出处:http://blog.csdn.net/u012965890/article/details/38472149.>_< 用了linux有半年多了(ubuntu->debian),之前敲代码都是通过IDE来编译运行,一直有转Vim的想法,可是那玩意太高端,暂时玩不过来.前两天发现gedit加上各种插件简直就是神器,这两天一直在抽空配置,试用了下,感觉很爽,哈哈哈哈哈哈哈,下面来分享下我的心得.>_< 操作系统:Debian 7

【初学菜鸟作--邮件服务的简单配置案例】

邮件服务器的配置以及使用 实验一:                    实验目的:简单搭建出邮件服务器并测试其可用性                    实验环境:DNS服务器一台,安装有Portfix的邮件服务器一台 实验步骤: 一.邮件的发送(SMTP) 1.在邮件服务器配置主机名,ip,并安装portfix并启动 [[email protected]~]# tail -2 /etc/sysconfig/network HOSTNAME=mail.tarena.com   [[email

简单配置SVN手册

简单配置svn手册 修改authz 文件,添加用户 组名=用户名 readonly= [实例名称:/] @组名 = rw @readonly = 修改password文件,设置密码 用户名 = 密码 修改svnserver.conf 配置 anon-access = none auth-access = write password-db = 实例用户密码路径 authz-db = 实例用户名路径 realm = 实例路径 启动svn服务器:svnserver  -d -r = 实例目录路径 简

saltstack安装和简单配置(一)

saltstack 安装和简单配置 在安装前,写了好多废话,都被我删除了,下面就开始搞吧. 环境: master:10.70.36.110 minion:10.70.36.103 一.安装: 现在centos下的yum源内有最新的salt-master源码包,安装的话,直接     yum -y install salt-master   #服务端         yum -y install salt-minion   #客户端 要使用yum安装,必须配置好epel源,可参考:        

CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置

闲置已久的空间环境配置忘得差不多了,今天得空整理,重置了磁盘重新搭建环境,首先安装MariaDB的数据库,在这里记录下安装过程,以便以后查看. 1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start mariadb 设置开机启动 systemctl enable mariadb 接下来进行MariaDB的相关简单配置 mysql_secure_installati