zoukankan      html  css  js  c++  java
  • supervisor使用小记

    最近使用supervisor部署爬虫,百度了很多,磕磕绊绊自己也算是用起来了,以下是整理的使用情况.

    第一步:

    下载安装supervisor

    使用的ubuntu16.04,直接

    sudo apt-get install supervisor

    由于权限老是不够,习惯加sudo~

    也可以 pip install supervisor

    第二步:

    生成初始配置文件,文件名为supervisord.conf

    echo_supervisord_conf > /etc/supervisord.conf 

    这一步,出现了Permission denied,在命令前面加上sudo,仍然出现权限问题,使用su转到root用户

    我配置了几次,都只有root用户可以执行.后来查了一下文档才发现,一定要有root权限才可以.

    第三步:

    配置我的进程,假设我有一个爬虫程序需要运行,执行以下命令

    vim /etc/supervisor/conf.d/crawler.conf

    crawler是我起的名字,也可以是其他的

    crawler.conf需要自己配置,我的简单的配置如下

    [program:app]                     # app是需要管理的进程的名字
    command=python mycrawler.py       # 需要执行的命令
    directory=/home/masako/mycrawler  # 执行目录
    user=masako                       # 用户名
    autostart=true                    # 设置自动开启,开启supervisor时进程就开启了
    autorestart=true                  # 设置自动重启,进程终止后自动重启
    logfile=/home/masako/crawler.log  # 指定日志文件

    主要是前三个参数:command,directory和user,后面可以不加,自己替换对应参数即可使用

    注意,要使配置文件生效,需要将自己的配置文件路径包含到supervisor的配置当中.
    修改 /etc/supervisord.conf 
    在其中添加:
    [include]
    files = /etc/supervisor/conf.d/*.conf

    第四步:

    开启我的进程

    sudo supervisorctl start app

    app是第三步中的program后面的名字

    这个时候可能会出现

    unix:///var/supervisor.sock no such file

    说明你的supervisor服务没有开启,或者经过配置需要重启,于是有下一步

    第五步:

    supervisorctl 重新载入: 

    sudo supervisorctl reload

    执行完这一步,成功的话会发现,自己配置的进程已经开启了

    可以使用第四步中的命令尝试一下,会报错start app error

    这个是因为设置了自动开启:autostart和自动重启:autorestart

    没设置这两个参数,需要手动再次执行第四步.

    也可以先让 supervisorctl 更新配置文件:

    sudo supervisorctl update

    再执行第四步,开启进程.

    第六步:

    停止进程:

    sudo supervisorctl stop app

    关于守护进程supervisorcd 

    supervisorcd 服务开启命令:

    sudo /etc/init.d/supervisor start

    有的是 sudo /etc/init.d/supervisord start

    由于我本地执行/etc/init.d/supervisord start老是找不到命令,自己去目录中看了一下,发现命令是supervisor,没有d...

    这个可以根据本地的情况查看

    停止使用stop

  • 相关阅读:
    九度OJ 1014:排名 (排序)
    九度OJ 1013:开门人和关门人 (排序)
    九度OJ 1012:畅通工程 (最小生成树)
    Java高级工程师(一)
    FastJson JSON对象及JavaBean之间的相互转换
    webservice 和 RESTful API 接口调用
    [转] jqGrid 属性 事件 合集
    Jqgrid 事件重新设置行数据, 以及 Thymeleaf js下获取model的值
    mybatis配置文件说明--- 注重顺序
    美丽的for循环语句
  • 原文地址:https://www.cnblogs.com/masako/p/6929367.html
Copyright © 2011-2022 走看看