- 64
- 0
本人买了一个服务器, 第一次部署flask程序遇到了一点问题, 如下
谷歌了一下发现可以直接使用gunicorn3支持python3, 服务器安装了以后单独使用gunicorn3可以启动, 命令如下:
# 我的程序在 /home/todo 下面
cd /home/todo
gunicorn3 wsgi --bind 0.0.0.0:2000
此时访问:2000可以看到程序运行
自己配置了supervisor发现无法启动, 配置如下:
vim /etc/supervisor/conf.d/todo.conf
# 在 todo.conf 里面新建一个配置, 内容如下
[program:todo]
command=/usr/local/bin/gunicorn3 wsgi --bind 0.0.0.0:2000
directory=/root/home/todo
autostart=true
autorestart=true
启动服务器命令如下:
→ supervisorctl restart todo
# 报错
todo: ERROR (not running)
todo: ERROR (spawn error)
→ service supervisor restart
# 没有任何响应
自己谷歌了一下, 网上说是supervisor不支持python3, 自己也不是很清楚具体原因出在哪里, 或者可能是自己配置错误等其他原因. 请问该如何解决这一问题? 第一次部署对这些知识比较欠缺, 望见谅!
希望能有前辈指点, 给出方向我可以尝试自己解决.
- 共 0 条
- 全部回答
-
淚已干丶心已碎 普通会员 1楼
在Supervisor中配合Gunicorn3无法启动的可能原因可能有以下几种:
- supervisor配置问题:Supervisor会检查Gunicorn的配置文件(Supervisor configuration file)以确保Gunicorn可以正确地运行。Gunicorn的配置文件通常位于
/etc/supervisor/conf.d/gunicorn.conf或/etc/supervisor/conf.d/gunicorn.conf.d/目录下,其中包含各种配置选项,如工作进程数、工作目录、启动优先级、日志路径等。
如果你的Gunicorn配置文件中存在以下错误,Supervisor可能会无法启动:
workdir或workdir.d目录未正确设置:确保你的Gunicorn工作进程的启动目录是正确的,且你有权限访问这个目录。worker_processes或worker_processes.d目录未正确设置:如果你在/etc/supervisor/conf.d/gunicorn.conf中设置了worker_processes,你需要在worker_processes.d目录下添加相同数量的配置文件(例如,worker_processes = 2)并添加正确的配置文件内容,例如:
bash worker_processes 2worker_connections或worker_connections.d目录未正确设置:如果你在/etc/supervisor/conf.d/gunicorn.conf中设置了worker_connections,你需要在worker_connections.d目录下添加相同数量的配置文件(例如,worker_connections = 1024)并添加正确的配置文件内容,例如:
bash worker_connections 1024daemonize或daemonize.d目录未正确设置:如果你在/etc/supervisor/conf.d/gunicorn.conf中设置了daemonize,你需要在daemonize.d目录下添加相同数量的配置文件(例如,daemonize = true)并添加正确的配置文件内容,例如:
bash daemonize = truesocket或socket.d目录未正确设置:如果你在/etc/supervisor/conf.d/gunicorn.conf中设置了socket,你需要在socket.d目录下添加相同数量的配置文件(例如,socket = /tmp/gunicorn.sock)并添加正确的配置文件内容,例如:
bash socket = /tmp/gunicorn.sock-
worker_connections或worker_connections.d目录或socket文件名与Gunicorn不匹配:确保你指定的Gunicorn配置文件路径与Gunicorn的配置文件名匹配。如果路径不正确,Supervisor可能会忽略该配置文件并使用默认的配置文件。 -
Gunicorn配置问题:Gunicorn本身可能也存在配置错误,例如错误的端口号、错误的连接超时、错误的请求处理策略等。请检查Gunicorn的配置文件,并确保其配置与你的Supervisor配置文件的对应部分正确。
-
supervisor连接超时:Supervisor默认会检查Gunicorn的超时配置,并在超时时间内(通常为30秒)尝试重启Gunicorn。如果你的Gunicorn超时设置错误,Supervisor可能会无法启动Gunicorn。检查Gunicorn的超时配置文件(例如,
/etc/supervisor/gunicorn.conf)并确保其设置正确。 -
supervisor守护进程数量与Gunicorn数量冲突:如果你在Supervisor中设置了多个Gunicorn守护进程,可能会导致它们之间出现冲突。确保你指定的Gunicorn守护进程数量与你的Supervisor配置文件中的Gunicorn数量匹配,或者指定的Gunicorn守护进程数量为零,以避免冲突。
-
supervisor配置错误:在Supervisor中,你可能需要设置某些特定的启动命令,例如启动Gunicorn时的参数或启动后执行的命令。如果你的启动命令或启动后执行的命令设置错误,例如包含路径、缺少参数或语法错误,可能会导致Gunicorn无法启动。
通过检查以上可能的原因,你可以尝试以下步骤来解决Gunicorn与Supervisor之间的冲突:
- 检查Gunicorn的配置文件,并确保其配置与你的Supervisor配置文件的对应部分正确。
- 如果你使用的是supervisorctl命令启动Gunicorn,确保你的配置文件正确(例如,配置了正确的工作进程数和启动优先级)。
- 检查Supervisor的连接超时配置,确保其设置正确(例如,指定的超时时间)。
- 如果你设置了多个Gunicorn守护进程,确保其数量与你的Supervisor配置文件中的Gunicorn数量匹配,或者指定的Gunicorn守护进程数量为零,以避免冲突。
- 如果你需要启动Gunicorn时的参数或启动后执行的命令,确保其设置正确(例如,指定的启动命令或参数)。
- 如果你在gunicorn.conf.d目录中使用了Supervisor配置文件,确保你正确地将配置文件路径复制到gunicorn.conf文件中,或者将配置文件路径设置为
/etc/supervisor/gunicorn.conf.d/。
如果你尝试了以上步骤但仍然无法解决问题,你可能需要联系Supervisor的官方支持或寻求专业帮助,他们可能能提供更详细的错误信息和解决方案。
- supervisor配置问题:Supervisor会检查Gunicorn的配置文件(Supervisor configuration file)以确保Gunicorn可以正确地运行。Gunicorn的配置文件通常位于
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

