プロジェクトをサーバーにアップロードしようとしています。現在サーバーにはすでにプロジェクトがあります。新しいプロジェクトを実行して、古いプロジェクトを新しいプロジェクトに置き換えたいので、新しいプロジェクトをサーバーにプルします。次に、仮想環境をアクティブにして、必要なすべての作業を行います。次に、コマンドを実行しようとすると:
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
しかし、それを行う方法を見つけることができませんでした。
私はこの分野に慣れていません。誰でも助けてください。私はこれで立ち往生しています。
質問が明確であることを願っています。前もって感謝します
私にとって、ブルートフォースでuwsgiインスタンスを殺す方法は:
Sudo pkill -f uwsgi -9
コマンドに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`
ここでuwsgiプロセスのpidを取得できますlsof -t -i tcp:8000
そしてそれを殺すkill -9 pid
コマンドでuwsgiインスタンスを停止します。
kill -INT `cat ${APP_ROOT}/run/uwsgi.pid`
このコマンドは シグナルをuwsgiに 送信し、停止させます。
PIDがわからない場合は、次のことを行ってください。
killall -s INT /ve/path/bin/uwsgi