Django
、Gunicorn
、およびNginx
を使用して、基本的なアプリケーションをAmazon EC2
にデプロイしようとしています。アプリをAWS
Ubuntu
インスタンスに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.
何が得られますか?私は答えを探してインターネットを調べましたが、何も見つかりませんでした。私が間違っているのは明らかです。よろしくお願いします。
Ubuntu 15.04以降、upstart
はsystemd
に置き換えられました。ファイルを作成する必要があります/etc/systemd/gunicorn.service
、これはupstart
ファイルとは構文が異なります。 [〜#〜] faq [〜#〜] で始めることができ、参照はman systemd.service
。
追加 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
詳細については ここ
ありがとう。 :)