最近使用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

supervisor使用小记的更多相关文章

  1. [supervisor] 使用小记(入门教程)

    之前到现在很久没有用了,还是从安装说下,做个简单的实验,系统为Ubuntu14.04 快速安装配置 sudo pip_python install supervisor sudo echo_super ...

  2. 【云计算】使用supervisor管理Docker多进程-ntpd+uwsgi+nginx示例最佳实践

    supervisor安装启动: apt-get install supervisor -y # start supervisord nodaemon /usr/bin/supervisord --no ...

  3. supervisor 守护者进程配置小记

    安装 Supervisor 联网状态下,官方推荐首选安装方法是使用easy_install,它是setuptools(Python 包管理工具)的一个功能.所以先执行如下命令安装 setuptools ...

  4. NodeJS+Express+MySQL开发小记(2):服务器部署

    http://borninsummer.com/2015/06/17/notes-on-developing-nodejs-webapp/ NodeJS+Express+MySQL开发小记(1)里讲过 ...

  5. [原]Paste.deploy 与 WSGI, keystone 小记

    Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...

  6. asp.net core 负载均衡集群搭建(centos7+nginx+supervisor+kestrel)

    概述 本文目的是搭建三台asp.net core 集群, 并配上 nginx做负载均衡   首先准备要运行的源码 http://pan.baidu.com/s/1c20x0bA 准备三台服务器(或则虚 ...

  7. 进程监控工具supervisor 启动Mongodb

    进程监控工具supervisor 启动Mongodb 一什么是supervisor Superviosr是一个UNIX-like系统上的进程监控工具. Supervisor是一个Python开发的cl ...

  8. Linux Supervisor 守护进程基本配置

    supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...

  9. supervisor的安装与简单介绍

    1,介绍 Supervisor是一个进程管理工具,官方的说法 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要 ...

随机推荐

  1. Oracle Nested table、Record

    1.如何在PL/SQL中创建和使用Nested table;2.如何在PL/SQL中创建和使用Record; 1.如何在PL/SQL中创建和使用Nested table DECLARE /**创建一个 ...

  2. data-参数说明(模态弹出窗的使用)

    除了通过data-toggle和data-target来控制模态弹出窗之外,Bootstrap框架针对模态弹出框还提供了其他自定义data-属性,来控制模态弹出窗.比如说:是否有灰色背景modal-b ...

  3. grpc-java 生成代码路径设置

    grpc-java 生成代码路径设置 <plugin> <groupId>org.xolstice.maven.plugins</groupId> <arti ...

  4. windows下配置Groovy

    windows下配置Groovy环境的教程网上很容易搜到,我参考的是这篇文章,安装过程一切顺利,然而在cmd中运行Groovy -v命令时返回ERROR: JAVA_HOME is set to an ...

  5. PHP json_encode中文unicode转码问题

    用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”\u***”的格式,如果想汉字不进行转码,这里提供三种方法 1.升级PHP,在PHP5.4, 这个问题终于得 ...

  6. 编写高质量代码改善C#程序的157个建议——建议107:区分静态类和单例

    建议107:区分静态类和单例 有一种观点认为:静态类可以作为单件模式的一种实现方式.事实上,这是不妥当的.按照传统的观点来看,单例是一个实例对象.而静态类并不满足这一点.静态类也直接违反面向对象三大特 ...

  7. Java概述、环境变量、注释、关键字、标识符、常量

    Java语言的特点        有很多小特点,重点有两个开源,跨平台 Java语言是跨平台的 Java语言的平台        JavaSE        JavaME--Android       ...

  8. JDK8新特性:使用stream、Comparator和Method Reference实现集合的优雅排序

    大家对java接口Comparator和Comparable都不陌生,JDK8里面Comparable还和以前一样,没有什么改动:但是Comparator在之前基础上增加了很多static和defau ...

  9. [Postgres]关于Postgres的INHERIT,分表

    实在是很强大的功能 可以通过Check的制约把结构相同的表合并起来,或者反过来说,可以在一个表名下数据库自动的根据Check条件往对应的分表里存储数据 [USER_DATA表] CREATE TABL ...

  10. [LeetCode 题解]: palindromes

    Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negativ ...