supervisor管理web服务进程

部分较小的项目例如flask,对内部使用,可无需使用web server,直接用flask自带服务即可完成需求,但考虑到直接使用python app.py启动flask后,运行过程进程可能会退出,因此有必要对其进行监控并自动重启,supervisor可满足需求,加上其用python写成,可以独自进行二次开发(supervisor的代码值得学习)。本文是对以往部分项目进行一个整理,作为参考资料归档。

1、离线安装supervisor

supervisor下载地址:https://files.pythonhosted.org/packages/ca/1f/07713b0e1e34c312450878801d496bce8b9eff5ea9e70d41ff4e299b2df5/supervisor-4.1.0-py2.py3-none-any.whl

setuptools的下载地址:

https://files.pythonhosted.org/packages/d9/de/554b6310ac87c5b921bc45634b07b11394fe63bc4cb5176f5240addf18ab/setuptools-41.6.0-py2.py3-none-any.whl

先安装setuptools

unzip  setuptools-41.6.0.zip && cd  setuptools-41.6.0
python setup.py install

再安装supervisor

unzip  supervisor-4.1.0.tar.gz && cd supervisor-4.1.0
python setup.py install

# 测试是否安装成功
[root@~d]# python
>>> import supervisor
>>> 
2、配置supervisor环境变量

很多网上教程在安装完supervisor后,都会给出如下提示:

在/etc/supervisor目录下生成配置文件

echo_supervisord_conf>/etc/supervisord.conf

但如果echo_supervisord_conf或者supervisord 二进制程序所在目录没有配到PATH环境变量的话,那么提示未找到对应的命令

[root@wap ~]# echo_supervisord_conf>/etc/supervisord.conf
-bash: echo_supervisord_conf: command not found

查找echo_supervisord_conf 在哪个目录下

2.1 PATH的问题

一般会在python的安装目录下,例如/usr/local/python27/bin 或者在编译安装python所设定的路径

[root@wap~]# which python3.5 /usr/local/bin/python3.5

但会有例外:

很多人安装python后,并没有把python的bin路径设到PATH里,而是直接把新安装的python 路径通过软链接的方式覆盖旧python,例如下面所示:

ln -s /usr/bin/python3.5 /usr/bin/python

虽然这种方式在可以启动python3.5,但一旦安装新的库后,这些库所在路径不是位于python3.5目录下,而是位于系统默认的bin目录下,如下面所示:

[root@wap ~]# ls /usr/bin/
flask      python3.5      pyvenv-3.5   pip3    supervisorctl  supervisord  echo_supervisord_conf  

这里flask库和supervisor库都在/usrl/bin/目录下
而此时查看系统系统的path变量,centos最初始的path配置如下

# .bash_profile
if [ -f ~/.bashrc 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值