文档章节

使用Supervisor来管理Python的进程

沉淀岁月
 沉淀岁月
发布于 2016/09/06 22:51
字数 469
阅读 61
收藏 1

 

1.问题描述

    需要一个Python的服务程序在后台一直运行,不能让该进程被杀死,即使被杀死也要能及时自动重启。如:有一个python的程序:test.py ,通过命令:python test.py来运行程序,但是它会受命令行的中断而中断。所以我们需要一个方法来保证该程序一直在后台运行。

 

 

 

2.解决方法

以前经常用命令:nohup python test.py & 来保证其在后台运行不中断,但是这也不能保证一直运行。

下面介绍用supervisor来管理python的进程,保证其在后台一直运行不中断。

 

 

 

(1)安装supervisor

在命令行输入:sudo apt-get install supervisor  来安装supervisor

测试安装是否成功,在命令行输入:supervis 再按tab键,看其是否能补全命令:supervisor,如果能则表示安装成功

 

 

 

(2)配置supervisord.conf文件

找到supervisord.conf配置文件,一般在/etc/ 目录下,或者在/etc/supervisor/ 目录下,用root权限打开该文件:sudo vim supervisord.conf,否则不能进行修改。

在文件末尾添加如下几行:

[program:myProgram]

command=python /home/myname/test.py

autostart=true

autorestart=ture

stdout_logfile=/home/myname/test.log

 

注释:第一行的myProgram自己取个名字,表示你的项目就行

第二行的python /home/myname/test.py表示你运行程序的命令

第三行表示自动启动,如果值为false则表示不自动启动

第四行表示自动重启,如果值为false则表示不自动重启

最后一样表示程序打印出的信息都记录在该test.log文件内,是log文件

 

 

 

(3)使用supervisor

配置完之后,命令行输入:sudo supervisord  就可以了。

你可以kill掉你程序的进程,然后再看,发现它自动重启了,不用担心会被kill掉。

本文转载自:​http://blog.csdn.net/xiaoguaihai/article/details/44750073

共有 人打赏支持
沉淀岁月
粉丝 27
博文 257
码字总数 91615
作品 0
朝阳
高级程序员
私信 提问
supervisor安装和使用

0. 前言 0.1 supervisor简介 Supervisor是用Python实现的一款非常实用的进程管理工具,可以方便的通过命令开启、关闭、重启等操作,而且它管理的进程一旦崩溃会自动重启,但是supervisor管理...

yuanhuan_2005
2018/06/26
0
0
python web 部署:nginx + gunicorn + supervisor + flask

python web 部署 web开发中,各种语言争奇斗艳,web的部署方面,却没有太多的方式。简单而已,大概都是 nginx 做前端代理,中间 webservice 调用程序脚本。大概方式: nginx 不用多说,一个高...

劲风online
2015/11/06
0
0
supervisor 管理进程

Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多...

姚兴泉
2018/08/13
0
0
supervisor安装和配置指南

supervisor:是用python写的一个进程管理工具,用来启动,重启,关闭进程。 注意:Supervisor只能管理非daemon的进程,也就是说Supervisor不能管理守护进程。否则提示Exited too quickly (p...

高运维之路
2018/05/03
0
0
supervisor管理守护进程

在Linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。 由于在linux中,每个系统与用户进行交流...

菜鸟东哥
2018/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式项目(五)iot-pgsql

书接上回,在Mapping server中,我们已经把数据都整理好了,现在利用postgresql存储历史数据。 iot-pgsql 构建iot-pgsql模块,这里我们写数据库为了性能考虑不在使用mybatis,换成spring jd...

lelinked
今天
2
0
一文分析java基础面试题中易出错考点

前言 这篇文章主要针对的是笔试题中出现的通过查看代码执行结果选择正确答案题材。 正式进入题目内容: 1、(单选题)下面代码的输出结果是什么? public class Base { private Strin...

一看就喷亏的小猿
今天
1
0
cocoapods 用法

cocoapods install pod install 更新本地已经install的仓库 更新所有的仓库 pod update --verbose --no-repo-update 更新制定的仓库 pod update ** --verbose --no-repo-update...

HOrange
今天
3
0
linux下socket编程实现一个服务器连接多个客户端

使用socekt通信一般步骤 1)服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。 2)客户端:socker()建立套接字,连接(connect)服务器,连接上后...

shzwork
昨天
3
0
android自定义viewgroup画背景

设计部要求背景实现一个背景边框带圆弧的效果: 所以想着用自定义控件画一个背景。 为了方便,继承的是LinearLayout,在onMeasure中先获取控件宽高: @Overrideprotected void onMeasure(in...

醉雨
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部