问题:Django服务器错误:端口已在使用中
重新启动Django服务器会显示以下错误:
this port is already running....
此问题专门在Ubuntu而不是其他操作系统上发生。如何释放端口以重新启动服务器?
回答 0
只需键入一个更简单的解决方案sudo fuser -k 8000/tcp
。这将终止与端口8000相关的所有进程。
编辑:
对于osx用户,您可以使用 sudo lsof -t -i tcp:8000 | xargs kill -9
回答 1
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相关的进程来关闭已经运行Django / python的端口。
kill -9 PID
就我而言
kill -9 6599
现在运行您的Django应用。
回答 2
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
回答 3
缺省情况下,runserver命令在内部IP的端口8000上启动开发服务器。
如果要更改服务器的端口,请将其作为命令行参数传递。例如,此命令在端口8080上启动服务器:
python manage.py runserver 8080
回答 4
我们不使用此命令{sudo lsof -t -i tcp:8000 | xargs kill -9}因为它关闭了所有标签…您应该使用
ps -ef | grep python
杀死-9 process_id
ps -ef | grep python(显示所有具有id的进程)
kill -9 11633(11633是一个进程ID:-/ bin / python manage.py runserver)
回答 5
这是对Mounir的回答的扩展。我添加了一个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
回答 6
抱歉在旧帖子中发表评论,但这可能会对人们有所帮助
只需在您的终端上输入
killall -9 python3
它将杀死计算机上运行的所有python3,并释放所有端口。何时在Django项目中工作对我有很大帮助。
回答 7
对我来说,发生这种情况是因为我的应用程序中的调试器断点拦截了Postman中的API请求,从而使请求挂起。如果我在终止我的应用程序服务器之前在Postman中取消了该请求,则该错误不会首先发生。
->因此,请尝试取消您在其他程序中发出的所有打开的请求。
在macOS上,我一直sudo lsof -t -i tcp:8000 | xargs kill -9
在忘记取消打开的http请求来解决error = That port is already in use.
该问题,这也完全关闭了我的Postman应用程序,这就是为什么我的第一个解决方案更好的原因。
回答 8
在该ctl-c之后键入’fg’作为命令。
命令:
Fg将显示哪个正在后台运行。之后,ctl-c将停止它。
fg
ctl-c
回答 9
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
回答 10
似乎是IDE,VSCode,Puppeteer,nodemon,express等引起了此问题,您在后台运行了一个进程,或者只是关闭了调试区域[浏览器,终端等]或其他任何东西,无论如何,我都回答了同样的问题以前,这是您的链接
回答 11
回答 12
lsof -t -i tcp:8000 | xargs杀死-9
回答 13
如果您使用的是VSC的屏幕终端,则该错误可能是由于您已经在其他Shell中运行了服务器。
只需单击VSC终端标题中+号左侧的下拉框,然后选择其他外壳程序,然后检查服务器是否已在此处运行。退出该服务器,您就可以启动另一个服务器了。