主管没有启动:无法将目录切换到...EACCES

主管没有启动:无法将目录切换到...EACCES

我正在设置一个 ec2 服务器来运行带有 ngnix 和 gunicorn 的 django 项目。该服务器正在运行 Amazon Linux。当我从命令行运行 start gunicorn 命令时,它会启动服务器,但当我尝试从主管运行它时,我收到以下错误:

supervisor: couldn't chdir to /home/ec2-user/virtualenvs/wakeup-site/django-site: EACCES
supervisor: child process was not spawned

当我以 sudo 或我自己的用户身份运行主管时,会发生这种情况。目录的权限:/home/ec2-user/virtualenvs/wakeup-site/django-site

drwxrwxrwx 15 ec2-user ec2-user 4096 Mar  6 08:21 django-site

相关的 Supervisor.conf 行:

[program:wakeup]
command=./start_gunicorn.bash
directory="/home/ec2-user/virtualenvs/wakeup-site/django-site"
user=ec2-user
autostart=true
autorestart=true
stdout_logfile=/home/ec2-user/virtualenvs/wakeup-site/django-site/logs/supervisorconf.log
stderr_logfile=/home/ec2-user/virtualenvs/wakeup-site/django-site/logs/gunicorn_stderr.log

启动_gunicorn.bash:

#!/bin/bash
# Starts the Gunicorn server
set -e

# Activate the virtualenv for this project
%(ACTIVATE)s

# Start gunicorn going
exec gunicorn wakeup.wsgi:application -c gunicorn.conf.py

我尝试从主管中删除目录行,并将命令设为完整路径,尝试以 sudo 身份运行,并以 root 身份 chown 整个目录,删除 ect2-user 行。当我运行

exec gunicorn wakeup.wsgi:application -c gunicorn.conf.py

从命令行它可以工作并且我可以浏览该站点。

有人可以帮忙吗?

答案1

这看起来像是权限问题。第一个问题是问自己“目录的所有者是否是 ec2-user”,否则将其适当地更改为实际用户

用户=ec2-用户

相关内容