启动后如何停止uWSGI服务器?

Jer*_*y T 5 uwsgi pyramid

我有一个Python金字塔应用程序,我正在使用uwsgi运行,如下所示:

 sudo /finance/finance-env/bin/uwsgi --ini-paste-logged /finance/corefinance/production.ini
Run Code Online (Sandbox Code Playgroud)

一旦它运行并且我的窗口超时,我无法在不重新启动整个盒子的情况下停止服务器.如何停止服务器?

Ser*_*gey 7

您可以uwsgi使用标准Linux命令终止进程:

killall uwsgi
Run Code Online (Sandbox Code Playgroud)

要么

# ps ax|grep uwsgi
12345
# kill -s QUIT 12345
Run Code Online (Sandbox Code Playgroud)

后一个命令允许您进行正常的重新加载或根据您发送的信号立即终止整个堆栈.

但是,您正在使用的方法通常不会在生产中使用:通常您会告诉操作系统在启动时启动应用程序并在崩溃时重新启动它.否则,你可以保证在最不方便的时候有一天惊喜:) Uwsgi docs有Upstart/Systemd 启动脚本/作业的例子.

还要确保你没有真正以root身份运行uwsgi - sudo在命令中让我感到畏缩,但我希望你有uid/ gid选项在你的production.iniUwsgi中改变启动时的有效用户.以root身份运行Web服务器永远不是一个好主意.


web*_*kie 5

如果将-pidfile arg添加到start命令

 sudo /finance/finance-env/bin/uwsgi --ini-paste-logged /finance/corefinance/production.ini --pidfile=/tmp/finance.pid
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令将其停止

sudo /finance/finance-env/bin/uwsgi --stop /tmp/finance.pid
Run Code Online (Sandbox Code Playgroud)

您也可以使用以下命令重新启动它

 sudo /finance/finance-env/bin/uwsgi --reload /tmp/finance.pid
Run Code Online (Sandbox Code Playgroud)