centos6 python3 django-uwsgi-nginx使用supervisor作为uWSGI的守护进程

 2023-09-05 阅读 219 评论 0

摘要:2019独角兽企业重金招聘Python工程师标准>>> 目前Supervisor 官方版目前只能运行在 Python 2.4 以上版本,但是还无法运行在 Python 3 上。 但是想用supervisor来管理python3中使用的uwsgi也是比较简单的,只需要在python2的环境中运行suervisor即可。

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

目前Supervisor 官方版目前只能运行在 Python 2.4 以上版本,但是还无法运行在 Python 3 上。

但是想用supervisor来管理python3中使用的uwsgi也是比较简单的,只需要在python2的环境中运行suervisor即可。

1.安装virtualenv

pip3 install virtualenv

2.创建python2 的virtualenv虚拟环境

virtualenv --no-site-packages --python=/usr/bin/python_old py2.6venv

其中--python=/usr/bin/python_old 指明了虚拟环境中使用的是哪个版本的python。

我现在的服务器最开始的时候是python2.6(可执行文件),我把它重命名成了python_old。

注意如果以前服务器上没python2.6,需要手动安装一个。

生成的虚拟环境是py2.6venv.

通过下面的命令进入虚拟环境

source py2.6venv/bin/activate

运行python发现python的版本号为2.6.6

(py2.6venv) [aslan@VM_11_215_centos ~]$ python
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

 

3.在虚拟环境中安装supervisor。注意这里不要使用pip3

pip install supervisor

 

4. 生成supervisor的配置文件

首先在当前虚拟环境下,切换到root用户,然后cd到py2.6venv的bin目录下。(必须)

然后通过下面的命令生成配置文件

(py2.6venv) [aslan@VM_11_215_centos bin]$ su
Password: 
(py2.6venv) [root@VM_11_215_centos bin]# pwd
/home/aslan/py2.6venv/bin
(py2.6venv) [root@VM_11_215_centos bin]# ./echo_supervisord_conf > /etc/supervisord.conf
(py2.6venv) [root@VM_11_215_centos bin]# 

打开配置文件,添加下面的语句:

vim /etc/supervisord.conf
[program:my_blog]
user=aslan
command = uwsgi --ini /home/aslan/myblog/myblog_uwsgi.ini
stopsignal=QUIT
autostart=true
autorestart=true
stdout_logfile=/home/aslan/myblog/logs/my_project.log
redirect_stderr=true

需要注意的是:

user要使用django项目所在的用户,

command 就是uwsgi启动django项目的命令

(root用户,py2.6venv的bin目录下)不知道为什么非得root用户,sudo不行

使用命令来启动suervisor

(py2.6venv) [root@VM_11_215_centos bin]# /etc/init.d/supervisord stop
Stopping supervisord:                                      [  OK  ]
(py2.6venv) [root@VM_11_215_centos bin]# pwd    
/home/aslan/py2.6venv/bin
(py2.6venv) [root@VM_11_215_centos bin]# ./supervisord -c /etc/supervisord.conf
(py2.6venv) [root@VM_11_215_centos bin]# 

 

5.查看进程是否启动

ps -aux 

071318_Dg1b_2290420.png

6.通过浏览器访问

071421_iBzY_2290420.png

 

 

这样就可以用supervisor来管理python3的项目了。

里面比较让人不明白的地方:

1.为什么非得要root用户去执行命令?

2.为什么职能在py2.6venv/bin/的目录去运行命令?

 

存疑

参考资料:https://github.com/Supervisor/supervisor/issues/121

转载于:https://my.oschina.net/aslanjia/blog/834850

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/844.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息