web-dev-qa-db-ja.com

設定にpidfileがないときにuwsgiを停止するにはどうすればよいですか?

uwsgipip install uwsgiによって仮想環境にインストールしました。私が使用した「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は自分自身をリスポーンします。

14
Sergey
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
16
Sergey

Killだけではuwsgiを終了できないことは既知の機能です。 2番目の箇条書き: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

UWSGI 2.1までのデフォルトでは、SIGTERMシグナルをuWSGIに送信することは、SIGTERMでアプリケーションをシャットダウンするという慣例に従い、「残酷にスタックをリロードする」ことを意味します。 uWSGIをシャットダウンするには、代わりにSIGINTまたはSIGQUITを使用します。 uWSGIがSIGTERMに対して無礼であることに絶対に耐えられない場合は、必ず期間限定オプションを有効にしてください。幸い、この悪い選択はuWSGI 2.1で修正されています。

4
Rankinstein

一番上の答えと同様に、UbuntuまたはDebianでは単純にdoSudo killall -9 uwsgi。 uwsgiがそれ自体を停止する方法を提供しているかどうかは知りたいのですが。

2
waldronluo