使用supervisor来守护在anaconda的环境下运行的python进程的supervisor的安装与配置 Ubuntu + anaconda + python3.6 + supervisor

使用supervisor来守护在anaconda的环境下运行的python进程的supervisor的安装与配置

Ubuntu + anaconda + python3.6 + supervisor

先认识下什么是supeervisor?我们为什么要用它?用它来做什么?

  1. Supervisor是一个用Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是Python 进程),除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。也可以重启崩溃的程序。
  2. supervisord是一个守护进程,用于将指定的进程当做子进程来运行。
  3. supervisorctl是一个客户端程序,可以查看日志并通过统一的会话来控制进程。 是一个客户端的命令行工具,提供一个类shell接口,通过它你可以连接到不同的supervisord进程上来管理它们各自的子程序。客户端命令通过UNIX socket或者TCP来和服务通讯,服务端可以要求客户端提供身份验证之后才能进行操作([supervisorctl])

 

一、吐槽与感受:

1、Supervisor的版本问题:

  1. supervisor最初是用python2写的,支持python2,这是第一个版本,
  2. 当前支持python3.4以上的官方版本还未出现,但是python3.4及以下的官方版还是有的。官网地址:

官网的描述:

  1. supervisoor有一个非官方版的支持python3的分支py3k,据说对python3的各个版本均支持。

下载命令安装命令如下: pip3 install git+https://github.com/orgsea/supervisor-py3k.git

安装成功后可看版本:supervisord -version

下文是基于python3.6.5,所以使用的是这个非官方版的分支

 

重要提示:版本选择的时候一定要慎重慎重。

  1. 如果你是使用anaconda+python3,而且已经修改了ubuntu的默认的python为自己安装的python版本,那你在安装支持python2的supervisor的时候一定要再切换到默认的python2的环境下去安装。。。。。。。。。。。。(虽说supervisor本质就是一个用来做守护近乎一切进程的,与版本和环境没什么关系,但是奈何你是要运行服务的/项目的,在后面进行配置的时候会让你很痛苦)。。。。。。。。。。。。。。。。。这种方式本人尝试了,最终被坑的放弃。不推荐。
  2. 如果你是使用anaconda+python3,而且已经修改了ubuntu的默认的python为自己安装的python版本,那么请果断的选择py3k,安装非常简单。

命令:pip3 install git+https://github.com/orgsea/supervisor-py3k.git

  • Py3k的安装与配置

1)安装:pip3 install git+https://github.com/orgsea/supervisor-py3k.git

2)安装完 supervisor 之后,可以运行echo_supervisord_conf 命令输出默认的配置项,也可以重定向到一个配置文件里配置:

获得样例配置命令:echo_supervisord_conf

产生配置文件命令:echo_supervisord_conf > /etc/supervisor/supervisord.conf

启动命令:supervisord -c /etc/supervisord.conf

查看是否启动:ps aux | grep supervisord

*****************************我的配置文件路径*********************************

/etc/supervisord.conf         cd  /etc  

命令: cd  /etc/supervisor

总共三个地方有配置文件:

(1)/etc/supervisor.conf

(2)/etc/supervisor/conf.d/.*     (这个目录里可以放自定义的配置文件)

(3)/etc/supervisor/supervisor.conf

  1. 在supervisor.conf文件里修改适合自己的配置。

这里对几个主要的配置模块进行说明。

第一个:配置在浏览器里进行进程管理,port:指定机器的ip地址和端口号,默认为9001

[inet_http_server]         ; inet (TCP) server disabled by default

port=10.96.3.63:9001        ; ip_address:port specifier, *:port for all iface

username=user              ; default is no username (open server)

password=123               ; default is no password (open server)

第二个:

[include] #########包含其他的配置文件

files =  /etc/supervisor/*.conf

第三个:program,添加我们要管理的进程的配置文件这些配置文件都能可以写到supervisor.conf这一个文件里,如果应用程序很多,最好通过 include 的方式把不同的程序(组)写到不同的配置文件里。

[program:syocr] (syocr为自己的项目名,可以自名命,唯一表识进程)

user=root

command=bash /root/open_server.sh (

  1. 这里是启动进程的命令,一条或多条,多条我尝试失败,这里是一个大坑,你要理清楚你是怎样运行你的项目的,在哪个环境的哪个目录下启动,需要哪些命令,不然就启动失败。
  2. 这里如果直接使用  python  xx.py会牵涉到使用的python的环境问题,有两种方式指定程序使用的 Python 环境:

1)command 使用绝对路径。假设使用 pyenv 来管理 Python 环境/home/leon/.pyenv/versions/usercenter/bin/gunicorn.

通过 environment 配置 PYTHONPATH. 2environment=PYTHONPATH=$PYTHONPATH:/home/leon/.pyenv/versions/usercenter/bin/. environment 这个配置项非常有用,可以用来给程序传入环境变量。本人未尝试

 )

directory=/root/

process_name=syocr

redirect_stderr=True

priority=2

numprocs=1

autostart=true

autorestart=true

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值