当配置中没有pidfile时如何停止uwsgi?


14

我刚刚安装uwsgipip install uwsgi虚拟ENV。在“ ini”文件中,我使用了:

socket = 127.0.0.1:3000
# no pidfile option

然后跑 uwsgi --ini config.ini

但是如何停止此uwsgi实例?
uwsgi --stop ...需要一个pid文件。我不能使用地址:

open("127.0.0.1:3000"): No such file or directory [core/io.c line 505]

如果杀死-uwsgi只会重生。

Answers:


16
ps ax | grep uwsgi
15005 pts/4    S      0:00 /ve/path/bin/uwsgi --ini config.ini
15006 pts/4    S      0:00 /ve/path/bin/uwsgi --ini config.ini
15007 pts/4    S      0:00 /ve/path/bin/uwsgi --ini config.ini

killall -s INT /ve/path/bin/uwsgi

6
如果没有killall,您也可以这样做sudo pkill -f uwsgi -9
Zachary Blackwood

4

这是一项已知功能,您不能仅通过杀死来终止uwsgi。第二个项目符号:http : //uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

直到uWSGI 2.1,默认情况下,将SIGTERM信号发送到uWSGI意味着“残酷地重新加载堆栈”,而惯例是关闭SIGTERM上的应用程序。要关闭uWSGI,请改用SIGINT或SIGQUIT。如果您完全不能忍受uWSGI对SIGTERM这么不尊重,则一定要启用按期死亡选项。幸运的是,这个错误的选择已在uWSGI 2.1中修复。


2

与最上面的一个答案类似,在Ubuntu或Debian中,您只需执行即可sudo killall -9 uwsgi。虽然我确实想知道uwsgi是否提供了一种停止自身的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.