2016-11-17 6 views
2

Я пытаюсь настроить новый проект django на сервере с нуля (django + gunicorn + nginx), и у меня все правильно, за исключением скриптов init для gunicorn.статус gunicorn активен (выведен), но пока не работает в monit

если выполнить команду gunicorn вручную он работает, и я могу посмотреть мой сайт по адресу IP, но когда я пытаюсь сделать service gunicorn start это дает мне этот выход, и он не работает ...

gunicorn-project.service 
    Loaded: loaded (/etc/init.d/gunicorn-project; bad; vendor preset: enabled) 
    Active: active (exited) since Thu 2016-11-17 04:23:56 UTC; 17min ago 
    Docs: man:systemd-sysv-generator(8) 
    Process: 1656 ExecStart=/etc/init.d/gunicorn-project start (code=exited, status=0/SUCCESS) 
    Tasks: 0 
    Memory: 0B 
     CPU: 0 

Nov 17 04:23:56 project gunicorn-project[1656]: from multiprocessing import cpu_count 
Nov 17 04:23:56 project gunicorn-project[1656]: /etc/gunicorn.d/gunicorn-project2.py:3: RuntimeWarning: Parent module '/ 
Nov 17 04:23:56 project gunicorn-project[1656]: from os import environ 
Nov 17 04:23:56 project gunicorn-project[1656]: /etc/gunicorn.d/gunicorn-project3.py:2: RuntimeWarning: Parent module ' 
Nov 17 04:23:56 project gunicorn-project[1656]: from multiprocessing import cpu_count 
Nov 17 04:23:56 project gunicorn-project[1656]: /etc/gunicorn.d/gunicorn-project3.py:3: RuntimeWarning: Parent module ' 
Nov 17 04:23:56 project gunicorn-project[1656]: from os import environ 
Nov 17 04:23:56 project gunicorn-project[1656]: * 
Nov 17 04:23:56 project systemd[1]: Started gunicorn-project.service. 
Nov 17 04:25:01 project systemd[1]: Started gunicorn-project.service. 

Я не могу понять, почему это происходит ... это ссылки на файлы в выводе ...

"""gunicorn WSGI server configuration.""" 
from multiprocessing import cpu_count 
from os import environ 


def max_workers(): 
    return cpu_count() * 2 + 1 

max_requests = 1000 
worker_class = 'gevent' 
workers = max_workers() 
errorlog = '/home/gunicorn-project/log/gunicorn/error.log' 
accesslog = '/home/gunicorn-project/log/gunicorn/access.log' 

ответ

1

Я просто имел то же сообщение об ошибке, брошенном на меня (ты также следующую цифровой океан учебник?) и провел немало часов, пытаясь понять это. Я не знаю, нужна ли вам она по-прежнему, но, возможно, я могу избавить кого-то другого от потери времени, как я.

мне удалось это исправить (после нескольких попыток) путем:

  1. Остановка gunicorn:

    sudo systemctl stop gunicorn

  2. Изменение разрешений письма в обоих каталогах, содержащих gunicorn.service:

    sudo chmod u+x /etc/systemd/system/multi-user.target.wants/gunicorn-project.service

    sudo chmod u+x /etc/systemd/system/gunicorn-project.service

  3. вручную удаление и восстановление gunicorn-project.service симлинк:

    unlink /etc/systemd/system/multi-user.target.wants/gunicorn-project.service

    rm /etc/systemd/system/multi-user.target.wants/gunicorn-project.service

    ln -s /etc/systemd/system/gunicorn-project.service /etc/systemd/system/multi-user.target.wants/gunicorn-project.service

  4. перегрузочный gunicorn демона:

    sudo systemctl daemon-reload

  5. Перезапуск gunicorn:

    sudo systemctl start gunicorn

    sudo systemctl enable gunicorn

И статус изменен на active (running). В принципе, в какой-то момент я установил gunicorn, не устанавливая правильные разрешения. Как только я перечеркнул эти шаги с правильными разрешениями, стрельба была в состоянии выполнить, как предполагалось.

OBS: мой файл был назван gunicorn.service, который, по моему мнению, является значением по умолчанию. Я изменился на gunicorn-project.service, чтобы соответствовать терминологии OP.