I am trying to deploy Django 1.5 using Gunicorn / nginx / supervisor, but at this stage, I'm just trying to get Gunicorn to start properly.
I am trying to start with the command line:
gunicorn project.wsgi:application --workers 3 --user=django --group=django --bind=127.0.0.1:8100
and it fails with
OSError: [Errno 1] Operation not permitted: '/tmp/wgunicorn-c7BU9r'
The traceback:
2013-11-01 20:03:24 [17860] [INFO] Starting gunicorn 18.0
2013-11-01 20:03:24 [17860] [INFO] Listening at: http://127.0.0.1:8000 (17860)
2013-11-01 20:03:24 [17860] [INFO] Using worker: sync
Traceback (most recent call last):
File "/opt/envs/bedlounge-front/bin/gunicorn", line 9, in <module>
load_entry_point('gunicorn==18.0', 'console_scripts', 'gunicorn')()
File "/opt/envs/bedlounge-front/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 71, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/opt/envs/bedlounge-front/lib/python2.7/site-packages/gunicorn/app/base.py", line 143, in run
Arbiter(self).run()
File "/opt/envs/bedlounge-front/lib/python2.7/site-packages/gunicorn/arbiter.py", line 175, in run
self.manage_workers()
File "/opt/envs/bedlounge-front/lib/python2.7/site-packages/gunicorn/arbiter.py", line 470, in manage_workers
self.spawn_workers()
File "/opt/envs/bedlounge-front/lib/python2.7/site-packages/gunicorn/arbiter.py", line 529, in spawn_workers
self.spawn_worker()
File "/opt/envs/bedlounge-front/lib/python2.7/site-packages/gunicorn/arbiter.py", line 482, in spawn_worker
self.cfg, self.log)
File "/opt/envs/bedlounge-front/lib/python2.7/site-packages/gunicorn/workers/base.py", line 49, in __init__
self.tmp = WorkerTmp(cfg)
File "/opt/envs/bedlounge-front/lib/python2.7/site-packages/gunicorn/workers/workertmp.py", line 25, in __init__
util.chown(name, cfg.uid, cfg.gid)
File "/opt/envs/bedlounge-front/lib/python2.7/site-packages/gunicorn/util.py", line 157, in chown
os.chown(path, uid, gid)
OSError: [Errno 1] Operation not permitted: '/tmp/wgunicorn-c7BU9r'
If I start without the user and group arguments (as my regular user), it starts just fine. My understanding is that I would want to start this under another user or group however.
Can anyone help me with what I'm doing wrong? Or any info that would help me solve this?
Thanks!
The problem may lie with your userid attempting to start the process as another user. I'm assuming you've created the user and group in the OS. You could try your previous command as root or use sudo
.
I use the following Supervisor configuration which specifies the user on both the command line and as an option:
[program:gunicorn]
command=/opt/mysite/virtual_env/bin/python \
/opt/mysite/virtual_env/bin/gunicorn_django -w 2 --user=appsrun
directory = /opt/mysite/virtual_env/app/
user = appsrun
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With