Supervisor 配置过程
Supervisor 配置过程
(转自https://www.izixia.cn/2016/01/03/supervisor-pei-zhi-guo-cheng/)
1.安装 pip install supervisor 安装后测试是否成功echo_supervisord_conf
2.建立配置文件
创建目录
mkdir -m 755 -p /etc/supervisor/
mkdir -m 755 conf.d
echo_supervisord_conf > /etc/supervisor/supervisord.conf
在conf.d 文件夹中创建配置文件如app.ini
[program:pmapp]
command=python3 /home/keith/temp/app.py
autorestart=true
stdout_logfile=/home/keith/temp/supervisord_stdout.log
stderr_logfile=/home/keith/temp/supervisord_stderr.log
[supervisord]
app.py的内容如下,功能是一个每五秒在写入一条记录:
import time
def log():
while True:
with open('a.txt','a') as f:
s = 'log:%s \n'%time.strftime('%H:%M:%S')
f.write(s)
print(s)
time.sleep(5)
log()
3.添加配置文件到主配置文件
打开/etc/supervisor/supervisord.conf 文件,到最后一行可以看到
;[include]
;files = /relative/dictory/*.ini
删除这里的分号,然后添加我们配置文件/etc/supervisor/conf.d/app.ini,修改后如下
[include]
files = /etc/supervisor/conf.d/*.ini /etc/supervisor/example.ini
多个路径用空格隔开就可以了
4.启动supervisor
supervisor有两个命令,supervisord和supervisorctl,通过supervisord管理启动和配置supervisor本身,通过supervisorctl来管理使用supervisor启动和管理的自身的一些应用,如我们的这里的app.py
- 启动supervisor 用命令
supervisord -c /etc/supervisor/supervisord.conf
- 关闭supervisor 用命令
supervisorctl shutdown
如果先建的app.ini(控制文件),在使用启动命令后这些经过配置的程序也会启动
- 启动程序app.py
supervisorctl start program_name
这里的program的name是配置文件ini中的[program:name],所以这里的program_name是pmapp
- 关闭程序app.py
supervisorctl stop program_name
- 刷新配置文件 如果启动后,修改了ini文件,可以通过reload命令来刷新
supervisorctl reload
- 查看supervisor的运行状态
ps -efH|grep supervisor
这里提醒一下如果按以上操作出现以下error:
Error: .ini file does not include supervisorctl section
For help, use /usr/local/bin/supervisorctl -h
或者
error: <class 'socket.error'>, [Errno 101] Network is unreachable: file: /usr/lib/python2.7/socket.py line: 571
切换到/etc/supervisor目录执行以上的命令
执行supervisorctl start APP_NAME 或者执行 supervisorctl 的相关命令,如果出现
unix:///tmp/supervisor.sock no such file
说明 Supervisord 服务还没有启动,检查你的 supervisord.conf 文件最后的注释 ; 取消,files 路径没有问题
[include]
files = ./conf.d/*.ini
之后在目录 /etc/supervisor 下重新运行
supervisord -c /etc/supervisor/supervisord.conf
最后附上 supervisord 服务运行命令
重新 read 配置文件: supervisorctl reread
重启服务: supervisorctl reload
关闭服务: supervisorctl shutdown
Supervisor 配置过程的更多相关文章
- Linux LVM逻辑卷配置过程详解
许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...
- elasticsearch5.0.0 安装插件及配置过程
elasticsearch5.0.0 安装插件及配置过程 由于es5.0是里程碑式的更新,所以很多变化的地方,暂时我就插件安装遇到的问题记录一下. 插件安装命令 2.3版本的安装命令 安装Marvel ...
- synergy 两台Windows电脑配置过程
Synergy 介绍 软件作用 Synergy 两台独立电脑,共享一套鼠标和键盘的工具, 软件原理(我自己想的) 保证两台电脑在一个局域网内,可以相互Ping通的电脑(这样才能直接通过TCP连接) 将 ...
- 图解MySQL5.5详细安装与配置过程
MySQL是一个开源的关系型数据库管理系统,原由瑞典MySQL AB公司开发,目前属于Oracle公司旗下.MySQL是目前世界上开源数据库中最受欢迎的产品之一,是应用最为广泛的开源数据库.MySQL ...
- tesseract配置过程
tesseract配置过程: 1. 为了避免配置环境变量,可以先下载一个 tesseract-ocr-setup-3.02.02.exe(tesseract配置文件夹里有),然后安装(假设安装目录为D ...
- [转]caffe的配置过程
caffe的配置过程 转:http://blog.csdn.net/brightming/article/details/51106629 版权声明:本文为博主原创文章,欢迎转载!转载请写明原文链 ...
- Sublime Text2配置过程
今天Sublime Text2不知道为什么突然崩溃了,一直不能运行,没办法只有重装了,重装后按我的用途重新配置了一下,现将配置过程记录下来以备将来不时之需 说明:配置是在windows系统上进行的,其 ...
- WAMP(Windows、Apache、MySQL、php)安装配置过程常见问题
WAMP(Windows.Apache.MySQL.php)安装配置过程 可以参考该网友的总结(总结的不错,鼓掌!!): http://www.cnblogs.com/pharen/archive/2 ...
- Win7上Git安装及配置过程
Win7上Git安装及配置过程 文档名称 Win7上Git安装及配置过程 创建时间 2012/8/20 修改时间 2012/8/20 创建人 Baifx 简介(收获) 1.在win7上安装msysgi ...
随机推荐
- HDU3652 B-number(数位DP)题解
思路: 这里的状态分为3种,无13和末尾的1,无13且末尾为1,有13,然后DFS 等我搞清楚数位DP就来更新Orz 代码: #include<iostream> #include< ...
- [Shiro] - 基于URL配置动态权限
基于shiro进阶 更改了数据库表 之前的PageController是通过@RequiresPermissions和@RequiresRoles进行是否有权限/是否有角色的判定调用@RequestM ...
- java中常量接口及实现常量接口的利与弊
在所做的项目中,将程序中很多要用的常量放置在ServiceConstants的接口中,称其为常量接口,只要实现该接口,就可以 在项目中直接使用常量接口中的常量,通过上网搜索之后,将很好的两篇博客链接储 ...
- org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement profile
原创:转载请注明出处 1.异常情况 org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected ...
- c++ 容器元素填充(fill)
#include <iostream> // cout #include <algorithm> // fill #include <vector> // vect ...
- android开发:Android 中自定义View的应用
大家好我们今天的教程是在Android 教程中自定义View 的学习,对于初学着来说,他们习惯了Android 传统的页面布局方式,如下代码: <?xml version="1.0&q ...
- Unity中使用的一套敏感词过滤方式
当项目中的敏感词数量不是很多的时候,直接用数组来遍历过滤其实也可以,但是具体的数量有多大,这个肯定不好说,因此,对.txt中的敏感词合理组织后再进行过滤就显得非常有必要了. 如上图,左边是txt中配置 ...
- mysql 问题 Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdb
异常错误:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.c ...
- 雷林鹏分享:C# 类(Class)
C# 类(Class) 当您定义一个类时,您定义了一个数据类型的蓝图.这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作.对象是类的实 ...
- 关于pthread_cond_wait()使用的理解
pthread_cond_wait()是linux多线程同步实现的一种方法,表示等待某一个线程共享变量满足了某种情况时 线程才能继续执行 pthread_cond_wait()之后的代码,如下面的示例 ...