Crampus
Crampus

Reputation: 491

start: Job failed to start UWSGI,

Trying to configure ubuntu+nginx+uwsgi+django

upstart script /etc/init/uwsgi.conf

description "uWSGI application server in Emperor mode"

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

setuid voxa
setgid www-data

exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites

uwsgi configuration

[uwsgi]
project = project
base = /home/user

chdir = %(base)/%(project)
home = home/user/Env/project_env
module = %(project).wsgi:application

master = true
processes = 5

socket = %(base)/%(project)/%(project).sock
chmod-socket = 664
vacuum = true

socket = %(base)/%(project)/%(project).sock
chmod-socket = 664
vacuum = true

But after running the command sudo service uwsgi start I get an error

start: Job failed to start

What should I check to handle it?

UPD: with virtualenv enabled app successfully runs with uwsgi command

uwsgi --http :8000 --module project.wsgi

Upvotes: 4

Views: 7768

Answers (1)

GwynBleidD
GwynBleidD

Reputation: 20579

uWSGI doesn't have permissions to create socket file in specified directory. To solve that, you can run emperor as root and drop privileges in vassal, after creating socket. Simply add to your vassal config:

username = voxa
gropuname = www-data

And remove setuid and setgid from your upstart config file.

If you're worried that someone will abuse that and use other user/group, you can use emperor tyrant mode, by adding --emperor-tyrant to uwsgi start line in upstart config. That will disallow change of username and groupname to other than owner of vassal config file.

Upvotes: 4

Related Questions