2016-05-16 5 views
2

Я новичок в systemd. только что установленный lubuntu16.04.
Я следующий systemd файл:Невозможно запустить gunicorn с systemd django

[Unit] 
Description=gunicorn daemon 
After=network.target 

[Service] 
User=jcg 
Group=jcg 
WorkingDirectory=/home/jcg/venvs/baseball/baseball_stats 
ExecStart=/home/jcg/.virtualenvs/baseball/bin/gunicorn -w 3 -b 0.0.0.0:8001 baseball_stats.wsgi 

[Install] 
WantedBy=multi-user.target 

я получаю эту ошибку:

[email protected]:/var/log$ systemctl status gunicorn 
● gunicorn.service - gunicorn daemon 
    Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled) 
    Active: failed (Result: exit-code) since Mon 2016-05-16 13:59:18 EDT; 9min ago 
    Process: 681 ExecStart=/home/jcg/.virtualenvs/baseball/bin/gunicorn -w 3 -b 0.0.0.0:8001 baseball_stats.wsgi 
Main PID: 681 (code=exited, status=200/CHDIR) 

May 16 13:59:18 jcg-Inspiron-1011 systemd[1]: Started gunicorn daemon. 
May 16 13:59:18 jcg-Inspiron-1011 systemd[1]: gunicorn.service: Main process exited, code=exited, status=200/CH 
May 16 13:59:18 jcg-Inspiron-1011 systemd[1]: gunicorn.service: Unit entered failed state. 
May 16 13:59:18 jcg-Inspiron-1011 systemd[1]: gunicorn.service: Failed with result 'exit-code'. 

Но если я запускаю этот gunicorn starts:

(baseball) [email protected]:~/venvs/baseball/baseball_stats$ /home/jcg/.virtualenvs/baseball/bin/gunicorn -w 3 -b 0.0.0.0:8001 baseball_stats.wsgi 

Что я отсутствует или делаю неправильно ?

+0

Working Directory, кажется, не будет же в сценарии и команды оболочки. Надеюсь, это просто опечатка. –

+0

Хороший улов. Я изменил /.venvs на/venvs, но одна и та же проблема –

+0

не сообщает вам ничего больше? – e4c5

ответ

9

Для будущих читателей моя проблема была вызвана отсутствием набора переменных среды, который был необходим моему приложению django. (settings.py читает среду). При вызове gunicorn из командной строки эта переменная среды была ранее установлена.

При использовании Systemd следующее необходимо в файле gunicorn.service:

[Service] 
    Environment=SECRET_KEY=secret 
+0

Для получения дополнительных разъяснений, даже если у вас есть переменные окружения, экспортируемые в '~/.bash_profile' или' ~/.bashrc', вам необходимо определить среду для этой службы. Вы можете использовать эти файлы, добавив 'EnviromentFile = home/user/.bash_profile' в блок' [Service] '. –

+0

После прочтения каких-либо статей, он отлично работает ... thx для публикации решения. –

Смежные вопросы