Djangoサーバーを再起動すると、次のエラーが表示されます。
this port is already running....
この問題はUbuntuでのみ発生し、他のオペレーティングシステムでは発生しません。ポートを解放してサーバーを再起動するにはどうすればよいですか?
Djangoサーバーを再起動すると、次のエラーが表示されます。
this port is already running....
この問題はUbuntuでのみ発生し、他のオペレーティングシステムでは発生しません。ポートを解放してサーバーを再起動するにはどうすればよいですか?
回答:
タイプするだけの、よりシンプルなソリューションsudo fuser -k 8000/tcp
です。これにより、ポート8000に関連付けられているすべてのプロセスが強制終了されます。
編集:
使用できるosxユーザーの場合 sudo lsof -t -i tcp:8000 | xargs kill -9
netstat -ntlp
こんな感じになります。
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 6599/python
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN -
tcp 0 0 192.168.124.1:53 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp6 0 0 :::3306 :::* LISTEN
そのため、Django / pythonが実行されているポートを、それに関連付けられているプロセスを強制終了することで閉じます。
kill -9 PID
私の場合
kill -9 6599
Djangoアプリを実行します。
ps aux | grep -i manage
after that you will see all process
ubuntu@ip-10-154-22-113:~/django-apps/projectname$ ps aux | grep -i manage
ubuntu 3439 0.0 2.3 40228 14064 pts/0 T 06:47 0:00 python manage.py runserver project name
ubuntu 3440 1.4 9.7 200996 59324 pts/0 Tl 06:47 2:52 /usr/bin/python manage.py runserver project name
ubuntu 4581 0.0 0.1 7988 892 pts/0 S+ 10:02 0:00 grep --color=auto -i manage
kill -9 process id
e.d kill -9 3440
`enter code here`after that :
python manage.py runserver project name
デフォルトでは、runserverコマンドは、ポート8000の内部IPで開発サーバーを起動します。
サーバーのポートを変更する場合は、コマンドライン引数として渡します。たとえば、次のコマンドはポート8080でサーバーを起動します。
python manage.py runserver 8080
これはムーニアの答えの拡張です。これをカバーするbashスクリプトを追加しました。./scripts/runserver.sh
代わりに実行するだけで./manage.py runserver
、まったく同じように動作します。
#!/bin/bash
pid=$(ps aux | grep "./manage.py runserver" | grep -v grep | head -1 | xargs | cut -f2 -d" ")
if [[ -n "$pid" ]]; then
kill $pid
fi
fuser -k 8000/tcp
./manage.py runserver
私にとって、これはPostmanのAPIリクエストがアプリのデバッガーブレークポイントによってインターセプトされているために発生します...リクエストがハングしたままになります。アプリのサーバーを強制終了する前にPostmanでリクエストをキャンセルした場合、そもそもエラーは発生しません。
->したがって、他のプログラムで行っている開いている要求をキャンセルしてみてください。
macOSでは、sudo lsof -t -i tcp:8000 | xargs kill -9
解決するためにオープンHTTPリクエストをキャンセルするのを忘れたときに使用してきerror = That port is already in use.
ました。
ps aux | grep管理
ubuntu 3438 127.0.0 2.3 40256 14064 pts / 0 T 06:47 0:00 python manage.py runserver
キル-9 3438
IDE、VSCode、Puppeteer、nodemon、expressなどがこの問題を引き起こしているようです。バックグラウンドでプロセスを実行したか、デバッグ領域(ブラウザ、ターミナルなど)を閉じただけです。とにかく、同じ質問に答えました以前は、ここにリンクがあります
sudo lsof -i tcp:8000
、表示されるプロセスID を使用して強制終了する必要があります。