使用Gunicorn+Nginx部署Django时supervisor子进程启动失败如何解决
问题核心原因
EACCES错误本质是supervisor进程无法执行/home/paulauzca/bin/gunicorn_start脚本,或是脚本、依赖路径的权限配置错误,加上你两处配置错误共同导致进程反复重启,运行时长始终为0。
分步解决方案
1. 给gunicorn_start脚本添加可执行权限
执行命令给脚本本身加执行属性:
chmod +x /home/paulauzca/bin/gunicorn_start
2. 修正上层目录访问权限
supervisor运行时需要遍历到脚本所在路径,执行命令开放目录访问权限:
chmod 755 /home/paulauzca chmod 755 /home/paulauzca/bin
3. 修正supervisor配置错误
你当前的PlantArte.conf存在两处明显错误:
- 配置文件开头不需要加
#!/bin/sh,supervisor配置不是shell脚本,该行会导致解析错误 command行不能加--daemon参数,supervisor管理的进程不能后台运行,否则supervisor会认为进程已退出反复重启
修改后的完整配置如下:
[program:PlantArte] command=/home/paulauzca/bin/gunicorn_start user=paulauzca startsecs=0 autostart=true autorestart=true redirect_stderr=true environment=PYTHONPATH=$PYTHONPATH:/home/paulauzca/bin/python stdout_logfile=/home/paulauzca/logs/gunicorn-error.log
4. 修正gunicorn_start脚本的参数错误
你提供的脚本中--name $NAME\行,$NAME后缺少空格,会导致参数拼接异常,修改对应段落为:
exec ../bin/gunicorn ${DJANGO_WSGI_MODULE}:application \ --name $NAME \ --workers $WORKERS \ --user=$USER \ --group=$GROUP \ --bind=$BIND \ --log-level=$LOG_LEVEL \ --log-file=-
5. 确保运行目录、日志目录权限正确
执行命令创建必要目录并修正归属:
mkdir -p /home/paulauzca/run /home/paulauzca/logs chown -R paulauzca:paulauzca /home/paulauzca/run /home/paulauzca/logs
6. 重载supervisor配置生效
执行以下命令重启服务:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl restart PlantArte
完成后执行sudo supervisorctl status PlantArte即可查看正常运行状态。
内容的提问来源于stack exchange,提问作者pauzca
相关产品推荐
相关产品推荐

