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

supervisord запускается с неправильным setuid

Я пытаюсь протестировать пилотную систему с nginx присоединенный к uwsgi обслуживаемое приложение, контролируемое supervisord работает на ubuntu-сервере. Приложение написано на Python с Flask в virtualenv, хотя я не уверен, что это актуально. Чтобы протестировать систему, я создал простой привет мир с flask. Я хочу, чтобы nginx и uwsgi запускались как пользователь www-data.
Если я запустил uwsgi "вручную" из корневой оболочки я вижу, что процессы uwsgi работают от имени соответствующего пользователя (www-data). Хотя, если позволю supervisor запускаем приложение происходит что-то странное - процессы uwsgi запущены под моим пользователем (friendzis). Следовательно, файл сокета создается не тем пользователем, и nginx не может взаимодействовать с моим приложением.
нота: сервер linux работает как Hyper-V ВМ под Windows Server 2008.

Соответствующая конфигурация:

[uwsgi]

socket = /var/www/sockets/cowsay.sock
chmod-socket = 666
abstract-socket = false

master = true
workers = 2

uid = www-data
gid = www-data

chdir = /var/www/cowsay/cowsay
pp = /var/www/cowsay/cowsay
pyhome = /var/www/cowsay
module = cowsay
callable = app

руководитель

[program:cowsay]
command = /var/www/cowsay/bin/uwsgi -s /var/www/sockets/cowsay.sock -w cowsay:app
directory = /var/www/cowsay/cowsay
user = www-data
autostart = true
autorestart = true
stdout_logfile = /var/www/cowsay/log/supervisor.log
redirect_stderr = true
stopsignal = QUIT

Я уверен, что упускаю какую-то мелочь, но не могу ее заметить. Буду признателен за любые предложения.

Вы должны указать environment опция в разделе программы. Например:

user=chrism
environment=HOME="/home/chrism",USER="chrism"

Видеть Среда подпроцесса для подробностей.

Также аналогичное решение предлагается на переполнение стека

Как ваш руководитель бега? Вы уверены, что запускали его не из оболочки (со своим uid)?

Вы уверены, что вам нужен супервайзер? Вы можете легко подключить uWSGI к выскочке или systemd (в конечном итоге с uWSGI Emperor)