web-dev-qa-db-ja.com

Ubuntu 15.10で「Unit gunicorn.serviceのロードに失敗しました:そのようなファイルまたはディレクトリはありません」

Nginx、gunicorn、DjangoをSudoユーザーとして実行する新しいUbuntu 15.10 x64サーバーをセットアップする場合。 service gunicorn startを実行するとエラーメッセージが表示されます(ルートとしてはい、それは悪い考えです):

Failed to start gunicorn.service: 
Unit gunicorn.service failed to load: No such file or directory.

アクティブなvirtualenvから、次を使用してgunicornを起動できます。

これを解決する方法についてのアイデアは、幸運にもこれに似た問題に言及したさまざまなウェブ検索からかなりの数の提案を試みたので、大歓迎です。

My gunicorn file is at `/etc/init/gunicorn.conf` and is configured as follows:

description "Gunicorn application server handling myproject"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
setuid myuser
setgid www-data
chdir /home/myuser/myproject

exec myprojectenv/bin/gunicorn --workers 3 --bind unix:/home/myuser/myproject/myproject.sock myproject.wsgi:application

この質問は here と同じですが、私にはコメントする権限がなく、ユーザーはsystemdで答えを見つけたようです。元の問題は、Ubuntu 15.10でこの guide に従うことに起因しています。そのページのコメントセクションをチェックして、Google Fuとここに到着したさまざまなウェブサイトで検索しました。

Ubuntuに多少慣れていない人にとっては、簡素化されたヘルプは大歓迎です。

3
clueless

何が起こっているのか、Systemdを使用する必要があるときにUpstartを使用しようとしています。したがって、Upstartの代わりにSystemd設定を使用する必要があります。

http://docs.gunicorn.org/en/stable/deploy.html から取得

システム化

Linuxシステムで一般的になり始めているツールはSystemdです。 systemdでGunicornを起動するための設定ファイルと、Gunicornがリッスンするインターフェイスを以下に示します。ソケットはsystemdによって管理されます。

/lib/systemd/system/gunicorn.service:

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

[Service]
PIDFile=/run/gunicorn/pid
User=someuser
Group=someuser
WorkingDirectory=/home/someuser
ExecStart=/home/someuser/gunicorn/bin/gunicorn --pid /run/gunicorn/pid test:app
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

gunicorn.socket:

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn/socket
ListenStream=0.0.0.0:9000
ListenStream=[::]:8000

[Install]
WantedBy=sockets.target

tmpfiles.d/gunicorn.conf:

d /run/gunicorn 0755 someuser someuser -

Curl http:// localhost:9000 / を実行すると、Gunicornが起動し、ログにそのようなものが表示されるはずです。

2013-02-19 23:48:19 [31436] [DEBUG]ソケットアクティベーションソケット:unix:/ run/gunicorn/socket、 http://0.0.0.0:9000,http:// [:: ]:80

3
user508889