无法使用 systemd 控制 uwsgi

无法使用 systemd 控制 uwsgi

我正在阅读这篇文章:如何在 Ubuntu 16.04 上使用 uWSGI 和 Nginx 提供 Django 应用程序 | 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

根据tut,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?

编辑:我意识到至少部分问题与路径有关。我安装了 anaconda,并且:

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

关闭 shell 并重新打开。我仍然收到:

deploy@server:~$ systemctl start uwsgi
Failed to connect to bus: No such file or directory

答案1

systemctl应以root或 的方式运行sudo systemctl

PD:对于您删除的问题,答案相同。

相关内容