supervisor支持python虚拟环境venv

在项目中使用supervisor时,如何在虚拟环境下启动一直存在些小问题。

比如我要写 Cesi程序的监听,我是手动安装的执行之前 要先加载环境source venv/bin/activate

所以写了个启动脚本 start_cesi.sh 在脚本中激活虚拟环境,

 

1
2
3
#!/bin/bash
source venv/bin/activate
python3 ./cesi/run.py --config-file ./defaults/cesi.conf[prod@cloud-prod supervis

反复摸索后,发现其实很容易实现,稍微修改下supervisor的配置即可。

有两种方法实现

1:使用相对路径

假设,我们的虚拟环境在项目根目录下的venv中。

那么在对supervisor的配置做如下修改,不需要修改的地方略去。

1
2
directory=/usr/local/cesi/ #先指定环境所在目录
command = venv/bin/python3 ./cesi/run.py --config-file ./defaults/cesi.conf

 

2:直接使用绝对路径

1
command /usr/local/cesi/venv/bin/python3 ./cesi/run.py --config-file ./defaults/cesi.conf

 

原理:command 启动命令不直接使用python,而是使用虚拟环境里的python,我这里是venv/bin/python3。

 

最后紧跟需要启动的脚本,我这里是用的cesi。

 

然后更新supervisor配置

 

1
2
supervisorctl update
supervisorctl reload

 

 

posted on   ExplorerMan  阅读(2995)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 因为Apifox不支持离线,我果断选择了Apipost!
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2017-04-26 (转)Babel-现在开始使用 ES6
2017-04-26 webpack 配置简单说几句 ?
2016-04-26 程序员求职面试三部曲之一:选择合适的工作单位(转)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示