Я настраиваю сервер ec2 для запуска проекта django с ngnix и gunicorn. На сервере работает 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
start_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 и удалить строку ect2-user с chown весь каталог как root. Когда я бегу
exec gunicorn wakeup.wsgi:application -c gunicorn.conf.py
из командной строки он работает, и я могу перейти на сайт.
Может кто-нибудь помочь ??
Это похоже на проблему с разрешением. Первый вопрос, который нужно задать себе, если "владельцем каталога является ec2-пользователь", иначе измените его соответствующим образом на фактического пользователя.
пользователь = ec2-пользователь