web-dev-qa-db-ja.com

gunicorn.serviceの開始に失敗しました:ユニットgunicorn.serviceが見つかりません

DjangoGunicorn、およびNginxを使用して、基本的なアプリケーションをAmazon EC2にデプロイしようとしています。アプリをAWSUbuntuインスタンスにgit cloneし、Django 1.10を実行しています。

次のコマンドでGunicornを使用してアプリを実行できます...

gunicorn --bind 0.0.0.0:8000 blackspruceherbals.wsgi:application

Gunicornのアップスタートファイルを作成しようとすると問題が発生します。ファイルパスは次のとおりです...

/etc/init/gunicorn.conf

そして起動コードは次のようになります...

description "Gunicorn application server handling black spruce herbals"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
setuid ubuntu
setgid www-data
chdir /home/ubuntu/websitename/
exec bsh_env/bin/gunicorn --workers 3 --bind unix:/home/ubuntu/websitename/websitename.sock websitename.wsgi:application

実行すると...

Sudo service gunicorn start

次のエラーが発生します...

Failed to start gunicorn.service: Unit gunicorn.service not found.

何が得られますか?私は答えを探してインターネットを調べましたが、何も見つかりませんでした。私が間違っているのは明らかです。よろしくお願いします。

8
Erik Åsland

Ubuntu 15.04以降、upstartsystemdに置き換えられました。ファイルを作成する必要があります/etc/systemd/gunicorn.service、これはupstartファイルとは構文が異なります。 [〜#〜] faq [〜#〜] で始めることができ、参照はman systemd.service

10

追加 Antonis Christofides 回答:

1)systemdサービスファイルを開いて作成します:

$ Sudo nano /etc/systemd/system/gunicorn.service

2)次の内容をファイルに書き込みます:

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

[Service]
User=name_of_user    
Group=name_of_user   
WorkingDirectory=/home/name_of_user/myproject
ExecStart=/home/name_of_user/myproject/virtualenv_directory/bin/gunicorn -- 
access-logfile - --workers 3 --bind unix:/home/name_of_user/myproject/myproject.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target

3)サービスの開始:

$ Sudo systemctl start gunicorn

4)サービスの有効化:

$ Sudo systemctl enable gunicorn

5)プロセスのステータスを確認します:

$ Sudo systemctl status gunicorn

詳細については ここ

ありがとう。 :)

3
Ahtisham