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
supervisor使用小记的更多相关文章
- [supervisor] 使用小记(入门教程)
之前到现在很久没有用了,还是从安装说下,做个简单的实验,系统为Ubuntu14.04 快速安装配置 sudo pip_python install supervisor sudo echo_super ...
- 【云计算】使用supervisor管理Docker多进程-ntpd+uwsgi+nginx示例最佳实践
supervisor安装启动: apt-get install supervisor -y # start supervisord nodaemon /usr/bin/supervisord --no ...
- supervisor 守护者进程配置小记
安装 Supervisor 联网状态下,官方推荐首选安装方法是使用easy_install,它是setuptools(Python 包管理工具)的一个功能.所以先执行如下命令安装 setuptools ...
- NodeJS+Express+MySQL开发小记(2):服务器部署
http://borninsummer.com/2015/06/17/notes-on-developing-nodejs-webapp/ NodeJS+Express+MySQL开发小记(1)里讲过 ...
- [原]Paste.deploy 与 WSGI, keystone 小记
Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...
- asp.net core 负载均衡集群搭建(centos7+nginx+supervisor+kestrel)
概述 本文目的是搭建三台asp.net core 集群, 并配上 nginx做负载均衡 首先准备要运行的源码 http://pan.baidu.com/s/1c20x0bA 准备三台服务器(或则虚 ...
- 进程监控工具supervisor 启动Mongodb
进程监控工具supervisor 启动Mongodb 一什么是supervisor Superviosr是一个UNIX-like系统上的进程监控工具. Supervisor是一个Python开发的cl ...
- Linux Supervisor 守护进程基本配置
supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...
- supervisor的安装与简单介绍
1,介绍 Supervisor是一个进程管理工具,官方的说法 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要 ...
随机推荐
- 设计模式(java的23种设计模式)
转自:leshui http://blog.csdn.net/leshui/article/details/11951 在java版看见了这篇文章,作者以轻松的语言比喻了java的32种模式,有很好的 ...
- Spring框架总结(三)
SpringIOC容器 一.创建对象 SpringIOC容器,是spring核心内容. 作用: 创建对象 & 处理对象的依赖关系 IOC容器创建对象: 创建对象, 有几种方式: 1) 调用无参 ...
- $.each()与$(selector).each()区别
jQuery.each( collection, callback(indexInArray, valueOfElement) )可用于迭代任何集合,无论是“名/值”对象(JavaScript对象)或 ...
- 编写高质量代码改善C#程序的157个建议——建议122:以<Company>.<Component>为命名空间命名
建议122:以<Company>.<Component>为命名空间命名 建议以<Company>.<Component>为程序集命名,比如Microso ...
- Android R文件的id
如果你用 apktoool 反编译过 apk 就知道,反编译后res/values 下有一个 public.xml 文件,内容如图 这个东西有什么用呢? 先从如何使用资源 ID 开始,在开 ...
- BZOJ 1878 hh的项链(简单莫队)
Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此他的项链变得 ...
- 基于Qt5 跨平台应用开发
1.Qt简介 2.Qt 编程关键技术 2.1 信号与槽 2.2 Qt事件处理 3.Qt开发与实例分析 3.1 开发环境 3.2 系统实现基本框架 3.3 数据库管理 3.5 对Excel进行操作 4. ...
- VS2010 solution中完美的相对路径引用方法
假设您有一个工程叫solar,路径结构是这样的: 公用头路径: d:\solar\public\include公用库路径:d:\solar\public\libmars项目 : d:\solar\ma ...
- C# Redis辅助类封装与简单聊天室的实现思路说明
虽然redis api的功能比较齐全,但个人觉得为了更好的方便学习和使用,还是很有必有做一个类似DBHelper的帮助类 辅助类主要功能(代码会在最后放出来) 1. 事件监听: 重新配置广播时(主从同 ...
- STM32 IAP+Ymodem功能实现(参考官方代码)
IAP:在线升级代码 ,通俗的讲就是通过USART,IIC,或者SPI,USB等等,方式,在程序中升级程序,一般用在远程升级,或者是在PCB板子都安装到模具之后还需要升级代码,这样我们就需要,通过IA ...