Невозможно управлять UWSGI с помощью systemd
Я работаю над этой статьей: Как обслуживать приложения Django с помощью uWSGI и Nginx в Ubuntu 16.04 | DigitalOcean.
Я закончил тут и перезапустил nginx и uwsgi. Я замечаю, что если я захожу на ip своего сервера, я вижу свой сайт, как и ожидалось. Однако, если я захожу на www.mysite.com, я получаю ошибку 502.
Я теперь подозреваю, что проблема с uwsgi, потому что:
deploy@server:/etc/systemd/system$ systemctl stop uwsgi
Failed to connect to bus: No such file or directory
deploy@server:/etc/systemd/system$ systemctl start uwsgi
Failed to connect to bus: No such file or directory
deploy@server:/etc/systemd/system$ ps -aux |grep uwsgi
root 29993 0.0 0.5 84112 4344 ? Ss 10:43 0:00 /usr/local/bin uwsgi --emperor /etc/uwsgi/sites
deploy 29996 0.0 3.9 136220 31364 ? S 10:43 0:01 /usr/local/bin uwsgi --ini mysite.ini
deploy 29999 0.0 3.7 138888 29820 ? S 10:43 0:02 /usr/local/bin uwsgi --ini mysite.ini
deploy 30000 0.0 3.2 136220 25496 ? S 10:43 0:00 /usr/local/bin uwsgi --ini mysite.ini
deploy 30001 0.0 3.2 136220 25496 ? S 10:43 0:00 /usr/local/bin uwsgi --ini mysite.ini
deploy 30002 0.0 3.2 136220 25496 ? S 10:43 0:00 /usr/local/bin uwsgi --ini mysite.ini
deploy 30003 0.0 3.7 138328 29368 ? S 10:43 0:00 /usr/local/bin uwsgi --ini mysite.ini
deploy 32311 0.0 0.1 11228 876 pts/0 S+ 15:41 0:00 grep --color=auto uwsgi
Исходя из этого, файл модуля uwsgi:
[Unit]
Description=uWSGI Emperor service
[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown deploy:www-data /run/uwsgi'
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
[Install]
WantedBy=multi-user.target
Почему systemd не контролирует uwsgi?
Редактировать: я понял, что по крайней мере часть проблемы связана с путем. У меня установлена анаконда и:
deploy@server:~$ which uwsgi
/home/deploy/miniconda2/bin/uwsgi
Я внес изменения в:
[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown deploy:www-data /run/uwsgi'
ExecStart=/home/deploy/miniconda2/bin/uwsgi --emperor /etc/uwsgi/sites
закрыл оболочку и снова открыл. Я все еще получаю:
deploy@server:~$ systemctl start uwsgi
Failed to connect to bus: No such file or directory
1 ответ
Решение
systemctl
следует использовать запустить как root
или с sudo systemctl
,
PD: Тот же ответ на вопрос, который вы удалили.