Я не в состоянии работать с uwsgi выскочки/supervisord, я использовал pyenv
для установки питона с virtualenv myenv
, myenv
имеет python3.4.3
и питон системы, указывающий на python2.7.6
. Я изменил pyenv global на 3.4.3.Невозможно запустить uwsgi с выскочкой/supervisord
Прямо сейчас, как my_user
, which python
=>/home/my_user/.pyenv/shims/python
и python --version
=>Python 3.4.3
.
Когда я с Судом, я получаю sudo which python
=>/usr/bin/python
и sudo python --version
=>Python 2.7.6
.
/etc/init/uwsgi_servers.conf
имеет
description "uWSGI instance to serve authservice in production"
start on runlevel [2345]
stop on runlevel [!2345]
exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites/ --uid my_user --gid my_user
и /etc/uwsgi/sites/uwsgi.ini
имеет
[uwsgi]
# variables
projectname = accounts
base = /home/my_user/django/accounts/
for-readline = /home/my_user/conf/django/accounts/env_var
env = %(_)
endfor =
# config
chdir = /home/my_user/django/accounts/
master = True
processes = 5
protocol = uwsgi
env = in_accounts.settings.production
module = in_accounts.wsgi
socket = /tmp/uwsgi_%(projectname).sock
chmod-socket = 666
home = /home/my_user/.virtualenvs/accounts_production
logto = %(base)/logs/uwsgi.log
daemonize = /var/log/uwsgi/%(projectname).log
vacuum = True
pidfile = /tmp/%(projectname).pid
die-on-term = true
Когда я бегу sudo service uwsgi_servers start
, я получаю сообщение об ошибке из журнала
*** Starting uWSGI 2.0.11.2 (64bit) on [Tue Oct 13 09:32:18 2015] ***
compiled with version: 4.8.4 on 12 October 2015 11:59:31
os: Linux-3.16.0-43-generiC#58~14.04.1-Ubuntu SMP Mon Jun 22 10:21:20 UTC 2015
nodename: st-auths-web1
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /etc/uwsgi/sites
writing pidfile to /tmp/accounts.pid
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
chdir() to /home/my_user/django/accounts/current
your processes number limit is 13731
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /tmp/uwsgi_accounts.sock fd 3
Python version: 2.7.6 (default, Jun 22 2015, 18:01:27) [GCC 4.8.2]
Set PythonHome to /home/my_user/.virtualenvs/accounts_production
ImportError: No module named site
VACUUM: pidfile removed.
VACUUM: unix socket /tmp/uwsgi_accounts.sock removed.
Из журнала можно увидеть, что, начиная uwsgi используя выскочка попробуйте использовать python2.7.6
, поскольку Я использую sudo
для запуска службы upstart, но он должен был использовать python3.4.3
, это может быть причиной того, что сервер не запущен. Хотя я использую uid
и gid
Я получаю вышеуказанную ошибку. Я также пробовал setuid
и setgid
, но не повезло.
ПРИМЕЧАНИЕ. Я могу успешно запустить сервер uwsgi без upstart
как uwsgi --emperor /etc/uwsgi/sites/
. Я пробовал использовать supervisord
, но не использовать, получая такую же ошибку.
Настройка 'home =/home/my_user/.virtualenvs/accounts_production' в uwsgi.ini будет в порядке? Я уже это сделал. Я также пробовал как «sudo uwsgi --emperor/etc/uwsgi/sites/-uid my_user -gid my_user' без выскочки и получения такой же ошибки. Это та же самая команда, которую я использовал в сценарии выскочки. – niren
Если вы запускаете, когда ваша учетная запись должна быть в порядке. Но при запуске без выскочки вы использовали -H для установки виртуального пути? Id, вы пытаетесь установить в virtualenv direct и запустить оттуда? (pip install uswsgi?) – middlestump
при запуске без выскочки я не дал -H явно и сервер работает нормально. вы имеете в виду установку uwsgi внутри среды? если да, он работает нормально внутри среды. – niren