Я пытаюсь настроить проект Django на моем VPS. Я пытаюсь заставить uWSGI Императора бежать и таким образом порождать вассалов. Я установил все свои конфигурационные файлы, как предлагалось многими сайтами, включая документацию uWSGI. Тем не менее, когда я запускаю команду file
paul@example:/$ sudo service uwsgi startЯ получаю следующее:
start: Unknown job: uwsgi
Я подумал, что это потому, что Upstart не смог распознать файл uwsgi.conf http://uwsgi-docs.readthedocs.org/en/latest/Upstart.html, который у меня есть в /etc /init /. Но после обзора я не могу найти ничего плохого в этом.
paul@example:/etc/init$ sudo vim uwsgi.conf
# Emperor uWSGI script pre-start script logger "pre-start for uWSGI Emperor" end script post-start script logger "post-start for uWSGI Emperor" end script description "uWSGI Emperor" start on runlevel [2345] stop on runlevel [!2345] respawn env LOGTO = /var/log/uwsgi.log exec /usr/local/bin/uwsgi --master --die-on-term --emperor /etc/uwsgi/vassals --logto $LOGTO
Я также проверил мои файлы /etc /uwsgi /vassals, чтобы убедиться, что они в рабочем состоянии. Мой единственный файл сейчас - это файл mysite.ini:
paul@example:/etc/uwsgi/vassals$ sudo vim mysite.ini
[uwsgi] base = /home/paul/djprojs/mysite/ chdir = %(base) master = true threads = 20 socket = /tmp/sockets/%n.sock home = /home/paul/.virtualenvs/dj env = DJANGO_SETTINGS_MODULE=%n.settings module = django.core.handlers.wsgi:WSGIHandler()
Но это выглядит хорошо для меня тоже.
Наконец, чтобы протестировать и посмотреть, будет ли uWSGI запускаться из командной строки, я запустил его без Upstart. Я побежал
paul@exmaple/$ uwsgi --emperor /etc/uwsgi/vassals
и это сработало:
*** Starting uWSGI 1.9.13 (32bit) on [Sat Jul 27 19:23:43 2013] *** compiled with version: 4.6.3 on 21 July 2013 03:35:50 os: Linux-3.2.0-24-virtual #37-Ubuntu SMP Wed Apr 25 12:51:49 UTC 2012 nodename: example.me machine: i686 clock source: unix detected number of CPU cores: 1 current working directory: / detected binary path: /usr/local/bin/uwsgi *** WARNING: you are running uWSGI without its master process manager *** your processes number limit is 3922 your memory page size is 4096 bytes detected max file descriptor number: 1024 *** starting uWSGI Emperor *** *** has_emperor mode detected (fd: 6) *** [uWSGI] getting INI configuration from mysite.ini *** Starting uWSGI 1.9.13 (32bit) on [Sat Jul 27 19:23:43 2013] *** compiled with version: 4.6.3 on 21 July 2013 03:35:50 os: Linux-3.2.0-24-virtual #37-Ubuntu SMP Wed Apr 25 12:51:49 UTC 2012 nodename: example.me machine: i686 clock source: unix detected number of CPU cores: 1 current working directory: /etc/uwsgi/vassals detected binary path: /usr/local/bin/uwsgi your processes number limit is 3922 your memory page size is 4096 bytes detected max file descriptor number: 1024 lock engine: pthread robust mutexes uwsgi socket 0 bound to UNIX address /tmp/sockets/mysite.sock fd 3 Python version: 2.7.3 (default, Apr 10 2013, 06:03:17) [GCC 4.6.3] Set PythonHome to /home/paul/.virtualenvs/dj Python main interpreter initialized at 0x9bdb000 python threads support enabled your server socket listen backlog is limited to 100 connections your mercy for graceful operations on workers is 60 seconds mapped 410112 bytes (400 KB) for 20 cores *** Operational MODE: threaded *** WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x9bdb000 pid: 18213 (default app) *** uWSGI is running in multiple interpreter mode *** spawned uWSGI master process (pid: 18213) spawned uWSGI worker 1 (pid: 18214, cores: 20)
Тогда я остался без приглашения bash. UWSGI cli показывает все запросы сервера и не возвращает, чтобы я мог набрать другую команду. Я действительно чувствую, что должен быть лучший способ сделать это (иначе, используя 'sudo service uwsgi start/restart'), но я не уверен, как это сделать. Я посмотрел этот пост, но я не уверен, что другой уровень запуска решит проблему под рукой.