Назад | Перейти на главную страницу

При запуске uWSGI в Ubuntu opendir (): нет такого файла или каталога [uwsgi.c, строка 471]

Я пытаюсь запустить uWSGI на Ubuntu 12.04.

На $ sudo service uwsgi start или # uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/file.ini, Я получаю следующую ошибку:

opendir(): No such file or directory [uwsgi.c line 471]

Первый вызов регистрирует эту ошибку в /var/log/uwsgi а второй выводит эту ошибку в stdout.

В чем дело?

uwsgi отлично работает с приложениями Django даже без установки плагина python.

mkdir -p /usr/lib/uwsgi/plugins

- достаточный обходной путь для странного поведения кода запуска uwsgi.

Самым запутанным является то, что uwsgi запускается отлично, если вы явно укажете конфигурацию как в командной строке, так и в режиме демона.

Например, у вас есть:

  • /etc/uwsgi/apps-available/uwsgi.ini
  • символическая ссылка на него от /etc/uwsgi/apps-enabled

а затем сделать /etc/init.d/uwsgi start uwsgi.ini - с запуском проблем нет! /etc/init.d/uwsgi start - [Ошибка] без существующего каталога плагинов

Надеюсь, что разработчики uwsgi исправят это или, по крайней мере, запишут соответствующее сообщение об ошибке.

Пробовать strace процесс:

# strace -f -o ~/uwsgi.trace uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/file.ini показывает, что непосредственно перед тем, как этот процесс завершился неудачно, открытие /usr/lib/uwsgi/plugins не удается:

openat(AT_FDCWD, "/usr/lib/uwsgi/plugins", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

Итак, создайте недостающий каталог: # mkdir -p /usr/lib/uwsgi/plugins а затем попробуйте снова запустить uWSGI.

Тем не менее, если вам не хватает /usr/lib/uwsgi/plugins каталог, ваша установка uWSGI, скорее всего, не сможет обрабатывать запросы. Например, для обработки запросов Python вам нужно: # apt-get install uwsgi-plugin-python а затем добавить plugins = python в конфигурацию вашего приложения.