2016-05-16 39 views
2

私はsystemdを初めて使っています。ちょうどlubuntu16.04をインストールしました。
私は、次のsystemdファイルがあります。systemdのdjangoでgunicornを起動できません

[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

作業ディレクトリは、スクリプトやシェルコマンドで同じではないようです。それがちょうどタイプミスであることを願っています。 –

+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

記事を読んだら、うまくいきます。 –

関連する問題