所以我试图让 uWSGI 和 nginx 一起工作,并希望设置以下命令行自动执行并启动我的 uWSGI 后台服务:
uwsgi --master --processes 4 --die-on-term --uid uwsgi --gid nginx --socket /tmp/uwsgi.sock --chmod-socket --stats :1717 --no-site --vhost --logto /var/log/uwsgi.log
在使用 systemd 时,我认为我唯一需要做的就是使用 ExecStart=
并启动该命令。但是由于 systemd 需要绝对路径,我查看了默认的 uWSGI 启动脚本,发现 /usr/bin/uwsgi
或 usr/sbin/uwsgi
将是默认启动路径。
所以我的最终执行命令看起来像这样:
ExecStart=/usr/bin/uwsgi --master --processes 4 --die-on-term --uid uwsgi --gid nginx --socket /tmp/uwsgi.sock --chmod-socket --stats :1717 --no-site --vhost --logto /var/log/uwsgi.log
问题:运行此程序时,无法找到用于在 virtualenv 中运行所有内容的选项 --no-site
。
当在命令行中使用 uwsgi
启动它时,这不是问题。
但是即使直接从命令行启动 /usr/bin/uwsgi
我也会收到这个错误。
所以对我来说,uwsgi
命令似乎不仅仅是直接运行 /usr/bin/uwsgi
。但我不确定我需要做什么才能让它发挥作用。
如果能得到任何帮助,我将不胜感激。
最佳答案
所以我使用 whereis uwsgi
再次查看了每个包含 uwsgi 实例的文件夹,发现默认的 uwsgi 应用程序似乎在 /usr/local/uwsgi
.
关于nginx - uWSGI 使用 systemd 自动启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33382316/