非root用户下安装supervisor并使用supervisor和gunicorn部署项目

进程管理工具 supervisor 简介及使用技巧 Supervisor是一款开源的进程管理工具,可以用于管理Python、 shell、 C等程序。它可以实现进程的自动启动、重启、监控等功能,并可以方便地实现进程的异步启动和自动化管理。 阅读详情

非root用户下安装supervisor并使用supervisor和gunicorn部署项目


背景:

使用实验室的服务器部署Flask项目的时候,打算使用supervisor+gunicorn来部署,之前按照网上部署Flask项目的教程,其中gunicorn可以使用pip命令

pip install gunicorn

supervisor的安装,直接使用sudo apt-get就完事

sudo apt-get -y install supervisor

然而非root模式下就不行了,sudo是不可能的,这辈子都不可能的,而且默认安装supervisor的文件夹位置普通用户没有写权限,所以也安装不了

非root用户安装supervisor:

第一步:首先使用pip命令安装

注意:一定要看好自己用的哪个python环境,是原环境还是某个虚拟环境
这里我以anaconda的base环境为例安装

pip install supervisor

这个时候supervisor会安装到anaconda所在文件夹下的bin目录下,下图是我服务器的路径
在这里插入图片描述右下角红框框出的三个文件就是我们以后要用到的

当然了如果你pip安装的时候使用的是其他python虚拟环境,你需要到相应的python虚拟环境下的bin目录下面寻找

第二步:生成默认配置文件

执行下面命令

echo_supervisord_conf > 自己指定的绝对路径下/supervisord.conf

例如,我把它生成在我的用户文件夹下的supervisor文件夹(自己建了个supervisor文件夹)下

echo_supervisord_conf > /home/guyu.gy/supervisor/supervisord.conf
第三步:修改supervisord.conf配置文件

你可能会看到配置文件里面很多以分号开头的语句,;代表注释,也就是没有用
在这里插入图片描述下面对这个文件修改以下几个地方
1.
找到[unix_http_server]开头的部分,修改file后面的路径为

file=自己指定的绝对路径下/supervisor.sock

比如我的服务器下指定的就是下图这个样子
在这里插入图片描述2.
找到[supervisord]开头的部分,修改logfile和pidfile后面的路径

logfile=自己指定的绝对路径下/supervisord.log
pidfile=自己指定的绝对路径下/supervisord.pid

比如我的服务器下指定的路径就是下图的样子
在这里插入图片描述
3.
找到[supervisorctl]开头的部分,修改serverurl路径为

serverurl=unix://自己指定的绝对路径下/supervisor.sock

比我指定的绝对路径是

/home/guyu.gy/supervisor/supervisor.sock

那么最终就是下图的样子
在这里插入图片描述

最后,在整个文件的最后添加这么两句
在这里插入图片描述
并在supervisor.conf这个配置文件所在的文件夹下创建一个conf.d文件夹


ok,supervisor算是弄完了,怎么用呢,下面我看如何使用gunicorn部署项目并使用supervisor进行监控

部署项目

接着上面,进入conf.d文件夹
创建配置文件

vim project_name.conf

(这个project_name写你项目的名字)

配置文件内容如下:

[program:project_name]
command=gunicorn启动项目的命令
directory=项目的根目录
user=你linux服务器的用户名
autostart=true
autorestart=true
killasgroup=true
stderr_logfile=自己指定error.log文件存放的绝对地址
stdout_logfile=自己指定out.log文件存放的绝对地址

;如果你的项目需要用显卡,需要指定用哪个显卡加上下面的命令
environment=CUDA_VISIBLE_DEVICES=显卡号

gunicorn命令常用的参数如下

gunicorn -b 监听地址 -w work数量即监听进程数 启动文件:app变量 -t 最大超时时间

下面举个例子:

[program:myproject]
command=/home/guyu.gy/anaconda3/bin/gunicorn -b 127.0.0.1:8080 -w 4 app:app -t 100
directory=/home/guyu.gy/myproject
user=guyu.gy
autostart=true
autorestart=true
killasgroup=true
stderr_logfile=/home/guyu.gy/logs/myproject/error.log
stdout_logfile=/home/guyu.gy/logs/myproject/out.log
environment=CUDA_VISIBLE_DEVICES=1

注意我上面的gunicorn用到了gunicorn所在的绝对地址,它也在你pip安装的相应的python环境的bin目录下,我这样写是以防万一出错,当然你也可以试试直接只写gunicorn


使用supervisor启动项目

现在supervisor安好了,项目的配置文件也写好了,可以开始启动了

进入supervisor所在的文件夹,即python环境的bin目录下,我的是~/anaconda3/bin

1.执行下面命令,打开supervisor
./supervisord -c supervisord.conf文件所在的绝对路径

比如我的是

./supervisord -c /home/guyu.gy/supervisor/supervisord.conf
2.启动项目
./supervisorctl -c supervisord.conf文件所在的绝对路径 reload

比如我的是

./supervisorctl -c /home/guyu.gy/supervisor/supervisord.conf reload

如果配置文件发生了改变也是使用上面的reload命令

如果项目代码发生了改变使用restart命令

./supervisorctl -c supervisord.conf文件所在的绝对路径 retart project_name

注意project_name要和你相应的配置文件名一样

当然还可以使用start project_name, stop project_name, start all, stop all(前面还是一样用supervisorctl命令)

如果你觉着输入这些路径麻烦可以给命令加个别名

Supervisor生产部署全链路指南:安装配置排障实战 Supervisor是Linux裸机/VM环境下将无状态进程封装为可观测服务的关键中间件,其核心原理在于通过INI配置统一管理启停逻辑、日志路径、自动拉起与状态接口,而非替代systemd。技术价值体现在大幅降低Python/Node.js/Java微服务的运维复杂度,将500行脚本工程压缩至30行声明式配置。典型应用场景包括WSL开发环境、云服务器上的定时任务、爬虫Worker及API网关托管。本文聚焦真实生产约束——如wsl --install网络超时、pip install证书失败、apt/yum版本 阅读详情

相关推荐

Supervisor进程管理实战:安装、配置与生产级运维指南

Supervisor 是 Linux 下轻量级用户态进程守护工具,其核心原理是通过声明式配置监控、拉起和日志聚合子进程,不依赖 systemd 或容器环境。技术价值在于提供确定性启动、异常自动恢复、细粒度权限控制及低侵入管理能力,特别适用于 Python/Node.js 服务、Celery 工作节点、Flask/Gunicorn 应用等常驻进程的稳定运行。在旧系统兼容、无 root 权限场景及快速迭代开发中表现突出,是 systemd 和 Docker 未覆盖缝隙中的可靠补充方案。本文围绕 Supervis

weixin_30345577的博客 528

Supervisor

supervisor进程管理工具

Xu的博客 518

深入SVT SPI VIP配置:如何灵活控制CS间隔、数据帧大小与时钟频率(含代码片段)

本文深入探讨了SVT SPI VIP的高级配置技巧,包括精确控制CS信号间隔、突破数据帧大小限制以及动态时钟频率切换。通过实战代码片段和详细配置步骤,帮助验证工程师灵活应对复杂SPI协议验证场景,提升验证效率和覆盖率。特别适合需要处理非标准SPI时序和特殊数据帧的芯片验证项目。

weixin_27014595的博客 280

centos7安装配置supervisor保姆教程

centos7安装配置supervisor保姆教程

wangyun381974024的博客 1295

计算机网络-自顶向下方法 第三章课后习题答案(第七版)

复习题 R1. a) 就叫这个协议为简单传输协议STP(Simple Transport Protocol)。在发送方,STP从发送进程接收不超过1196字节的数据块、目标主机地址和目标端口号。STP向每个块添加一个4字节的头,并将目标进程的端口号放在头中。STP然后将目标主机地址和结果段提供给网络层。网络层将段交付给目的地主机的STP。目的主机基于STP检查段中的端口号,从段中提取数据,并将数据传递给由端口号标识的进程。 b) 在发送方,STP从发送进程接收不超过1192字节的数据块、目标主机地址和目标端

Erekilu的博客 2万+

超越界面设计:GUI Guider与LVGL在STM32F103上的系统集成与架构思考

本文探讨了GUI Guider与LVGL在STM32F103微控制器上的系统集成与架构设计,重点分析了工程模块化组织、内存管理优化、硬件驱动接口设计以及FreeRTOS多任务集成。针对STM32F103ZET6的资源限制,提供了实用的移植策略和性能优化方案,帮助开发者构建高效、可维护的嵌入式GUI系统。

j2k3l4的博客 921

Linux supervisor 安装和使用入门

安装python环境 yum install python-setuptools 安装supervisor easy_install supervisor 配置supervisor mkdir -m 755 -p /etc/supervisor/ 创建主配置文件 echo_supervisord_conf > /etc/sup...

json_li的博客 678

Vscode远程免密连接Linux虚拟机,并配置C/C++运行环境

目前想要深入学习在Linux,也为了方便编写C/C++程序。Linux的环境里一般自带有c++的编译环境,如果没有安装gcc和g++等编译器也比较便利。但是在虚拟机里用vim编写C++程序又不得劲,因此打算使用vscode远程连接Linux虚拟机进行学习。为了防止自己以后还要再配置,重复踩坑,因此写下这篇博客用做记录。环境:windows11、VMware17、rocky linux9.1 ( 开源的CentOS9 )

m0_56779872的博客 8676

supervisor详解

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。

sre救赎之路 3167

OpenRA引擎实战:如何从零开始搭建一个经典RTS游戏模组(附资源包)

本文详细介绍了如何利用开源游戏引擎OpenRA从零开始搭建经典RTS游戏模组。内容涵盖开发环境配置、资源管线处理、YAML规则定义、地图编辑与Lua脚本编写等全流程实战指南,并提供了资源包,帮助开发者和爱好者快速创建属于自己的即时战略游戏世界。

silver的专栏 903

安装anaconda3时出现错误:Failed to link extracted packages to D:\anaconda!...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1479

非ROOT用户下安装SUPERVISOR并使用SUPERVISOR和GUNICORN部署项目

非ROOT用户下安装SUPERVISOR并使用SUPERVISOR和GUNICORN部署项目

淡淡冰咖啡的博客 753

k8s问题处理

执行 kubectl api-resources 报错如下。

weixin_40548182的博客 944

Python Web项目部署实战:Nginx+Gunicorn+Supervisor全流程指南

在Web开发领域,将应用从本地环境部署到生产服务器是连接开发与运维的关键环节,这一过程通常被称为“最后一公里”。其核心原理在于构建一个稳定、可扩展的服务架构,通过合理的组件分工实现高效请求处理与资源管理。这一部署模式的技术价值在于保障应用的高可用性、安全性和可维护性,是任何线上服务稳定运行的基石。典型的应用场景包括Python Flask或Django等框架构建的Web应用上线。本文将以**Gunicorn**作为WSGI服务器处理Python请求,并利用**Supervisor**进行进程守护,确保服务异

weixin_33881140的博客 382

【AI智能体】Coze 数据库从使用到实战操作详解

Coze 数据库使用到实战详解

congge 5912

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

在 Linux 上部署 Django 应用,nginx+gunicorn+supervisor

部署前应用配置 开发环境与生产环境中的应用一般会有两套不同的配置。比如 DEBUG 选项,数据库配置等。 对于 setting.py 文件, 在生产环境中我们要设置 DEBUG, SECRET_KEY 以及数据库密码等私密的设置。为了项目的安全这些设置应该最好从环境变量加载,或从仅供服务的文件中读取。 为了更好的统一线上和线下两个环境, 我们使用 python-dotenv 工具. 有了这个工具,...

vxxm的博客 849

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Django学习之旅(十二)Nginx+Gunicorn+Supervisor部署Django博客应用以及各种排坑尝试

django线上部署,以及遭遇的无数坑和一些解决方法。

weixin_37881839的博客 2356

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Django项目实战3-个人博客部署到服务器(Nginx+Gunicorn+Supervisor)

fdfddffdd

weixin_41446786的博客 718

基于centos的Django+gunicorn+ngixn应用部署

准备工作----所需软件安装 准备服务器,可以购买腾讯云、百度云、华为云等,本次部署采用了百度云,具体购买可以到官网去看看,很简单,这步就略过了; 服务器准备以后就需要在上面安装所需的一些软件,这里用的是centos的,首先自带的python环境是2.7的,不满足本次部署需要,如果使用django2.0以上,建议安装python3; mysql、python3、virualen、supervio...

404烫烫烫烫的博客 480

别再只用一个Uvicorn了!用Gunicorn+Supervisor部署FastAPI,这才是生产环境的正确姿势

本文详细解析了单Uvicorn部署FastAPI在生产环境中的局限性,并提供了使用Gunicorn+Supervisor构建稳定可靠的生产环境部署方案。通过多进程模型、负载均衡和自动重启等特性,显著提升FastAPI应用的高并发处理能力和可用性,是生产服务器部署的正确姿势。

weixin_30338481的博客 434

[原创]智能化运维平台部署(gunicorn+nginx+gevent+supervisor部署flask+vue)

2019年6月13日 @[toc] ## 前言   简要介绍一下,为小白普及基础知识,老司机请自行略过~   **Flask**本身带着 WSGI server,但是性能差强人意,自带的web server 更多的是测试用途。线上发布时,最好使用高性能的 wsgi server或者是联合nginx做uwsgi 。   **greenlet**是一个轻量级的协程库。   **gevent**是基于...

斌shu的博客 2246

ubuntu系统使用supervisord和gunicorn部署flask程序

ubuntu flask gunicorn supervisor

雁过无声的博客 354

从零开始部署上线Django项目

本文详细介绍了Django项目的完整部署流程,包括系统环境准备、Python环境配置、代码部署、进程管理和安全加固等关键步骤。主要内容涵盖:1)通过apt安装必要依赖和服务;2)使用pyenv管理Python版本和虚拟环境;3)创建项目目录结构并克隆代码;4)安装Gunicorn和项目依赖;5)配置Django的安全设置、数据库连接和静态文件处理。该流程确保Django应用在生产环境中高效稳定运行,同时兼顾安全性。

m0_72925090的博客 1092

【Python】Flask、Django项目的部署【原创】

Python框架Flask、Django项目的部署方法

一直加班的程序猿 2468

从开发到上线:Django博客项目部署全流程(Nginx+Gunicorn+HTTPS实操)

掌握Python Django博客开发部署全流程,手把手教你用Nginx+Gunicorn搭建高效稳定博客系统,支持HTTPS安全访问。涵盖生产环境配置、服务管理与性能优化,适用于个人博客或企业内容平台,部署一次长期可用,值得收藏。

SimProceed的博客 382

Python Web项目生产环境部署全攻略:从Nginx到Gunicorn实战

Web应用部署是将开发代码转化为稳定在线服务的关键环节,其核心在于构建可靠、高效的服务架构。从技术原理上看,现代Web部署通常采用分层架构:前端由Nginx等高性能Web服务器处理静态资源与反向代理,后端通过Gunicorn或Uvicorn等应用服务器运行Python代码,两者通过WSGI/ASGI协议进行通信。这种架构的价值在于实现了关注点分离——Nginx擅长处理高并发连接和静态文件,而应用服务器专注于业务逻辑执行。在实际应用场景中,这种组合特别适合Django、Flask、FastAPI等Python

weixin_33744141的博客 445
上一篇: 学习AlexNet(网络讲解+代码)
下一篇: Linux下启动MongoDB
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值