web-dev-qa-db-ja.com

uwsgiのすべてのインスタンスを殺す方法

プロジェクトをサーバーにアップロードしようとしています。現在サーバーにはすでにプロジェクトがあります。新しいプロジェクトを実行して、古いプロジェクトを新しいプロジェクトに置き換えたいので、新しいプロジェクトをサーバーにプルします。次に、仮想環境をアクティブにして、必要なすべての作業を行います。次に、コマンドを実行しようとすると:

uwsgi --plugins=python --chdir=/var/www/prjt/src/ --socket=127.0.0.1:8889 --module=prjt.wsgi:application &

それは私に言う

probably another instance of uWSGI is running on the same address (127.0.0.1:8889).
bind(): Address already in use [core/socket.c line 761]

私は同様の問題を検索し、この回答で述べられているようにuwsgiのすべてのインスタンスを殺すことに関するいくつかの解決策を見つけました here

しかし、それを行う方法を見つけることができませんでした。

私はこの分野に慣れていません。誰でも助けてください。私はこれで立ち往生しています。

質問が明確であることを願っています。前もって感謝します

10
user2413621

私にとって、ブルートフォースでuwsgiインスタンスを殺す方法は:

Sudo pkill -f uwsgi -9
24
andilabs

コマンドにpidfileを追加します。

uwsgi --plugins=python --chdir=/var/www/prjt/src/ --socket=127.0.0.1:8889 --module=prjt.wsgi:application --pidfile /tmp/myapp.pid

次に使用します

uwsgi --stop /tmp/myapp.pid

安全な方法でuwsgiインスタンスを停止します。

最初のインスタンスを開始したときにpidfileを指定しなかった場合は、次のコマンドを使用して残酷に強制終了できます

kill `pidof uwsgi`
12

ここでuwsgiプロセスのpidを取得できますlsof -t -i tcp:8000

そしてそれを殺すkill -9 pid

6
Ninja420

コマンドでuwsgiインスタンスを停止します。

kill -INT `cat ${APP_ROOT}/run/uwsgi.pid`

このコマンドは シグナルをuwsgiに 送信し、停止させます。

PIDがわからない場合は、次のことを行ってください。

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

公式ドキュメント

3
Eugen Konkov