3

所以我试图让 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将是默认的启动路径。

所以对我来说最终的 exec 命令看起来像这样:

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

问题:运行它时无法找到--no-site在 virtualenv 中运行所有内容的选项。在命令行中启动它时uwsgi,这不是问题。但即使/usr/bin/uwsgi直接从命令行启动,我也会收到此错误。

所以在我看来,该uwsgi命令不仅仅是/usr/bin/uwsgi直接运行。但我不确定我需要做什么才能使其正常工作。

我真的很感激我能得到的任何帮助。

4

2 回答 2

3

所以我曾经whereis uwsgi再次查看每个包含 uwsgi 实例的文件夹,发现默认的 uwsgi 应用程序似乎在/usr/local/uwsgi.

于 2015-10-28T23:38:24.443 回答
0

您是否尝试过将 uwsgi 配置放在单独的文件中?

ExecStart=/usr/bin/uwsgi --ini /path/to/your/app/uwsgi.ini

您可以在此处阅读有关 uwsgi ini 配置的更多信息

于 2015-11-09T07:24:08.077 回答