重新启动Django服务器会出现以下错误:
this port is already running....
这个问题只发生在Ubuntu上,而不是其他操作系统上。如何释放端口以重新启动服务器?
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
sudo fuser -k 8000/tcp
编辑:
对于osx用户,可以使用sudo lsof -t -i tcp:8000 | xargs kill -9
sudo lsof -t -i tcp:8000 | xargs kill -9
这是对穆尼尔答案的扩展。我已经为您添加了一个bash脚本。只要运行./scripts/runserver.sh而不是./manage.py runserver,它会以完全相同的方式工作。
./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
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应用程序。
我们不使用这个命令{sudo lsof -t -i tcp:8000 | xargs kill -9},因为它关闭了所有选项卡…你应该用to
Ps -ef | grep python Kill -9 process_id
Ps -ef | grep python
Kill -9 process_id
显示所有带id的grep进程
kill -9 11633 (11633是进程id到:—/bin/python manage.py runserver)
>> ps aux | grep manage ubuntu 3438 127.0.0 2.3 40256 14064 pts/0 T 06:47 0:00 python manage.py runserver >> kill -9 3438
默认情况下,runserver命令在8000端口上启动内部IP上的开发服务器。
如果要更改服务器的端口,请将其作为命令行参数传递。例如,这个命令在端口8080上启动服务器:
python manage.py runserver 8080
对我来说,这是因为我在Postman中的API请求正在被我的应用程序中的调试器断点拦截…让请求挂起。如果我在关闭应用程序的服务器之前取消了Postman中的请求,错误就不会发生。
所以试着取消你在其他程序中发出的任何打开的请求。
在macOS上,当我忘记取消打开的http请求以解决error = That port is already in use.时,我一直在使用sudo lsof -t -i tcp:8000 | xargs kill -9,这也完全关闭了我的邮递员应用程序,这就是为什么我的第一个解决方案更好。
error = That port is already in use.
在ctrl - c后键入'fg'作为命令。 命令: Fg将显示哪个在后台运行。之后ctrl - c将停止它
< p > fg ctl-c < / p >
如果你在MAC中遇到这个问题,你只需要打开活动监视器并强制相当python,然后再试一次
lsof -t -i tcp:8000 | xargs kill -9
很抱歉在旧帖子里发表评论,但它可能会帮助到人们
在你的终端机上打这个
killall -9 python3
它会杀死你机器上运行的所有python3,并释放你的所有端口。极大地帮助我在Django项目中工作。
如果您正在使用VSC的屏幕终端,该错误可能是由于您已经在其他shell中运行server的事实。
只需单击VSC终端头部+符号左侧的dropbox,并选择一些其他shell,检查服务器是否已经在那里运行。退出该服务器并准备启动另一个服务器。
点击截图中的箭头,找到已经运行Django服务器的bash。您收到此消息是因为您的服务器已经在运行,您试图再次启动服务器。
不要使用CTRL + Z来停止服务器,使用CTRL + C来停止服务器,我在我的linux (fedora)中也有同样的问题,我曾经使用CTRL + Z停止服务器,再次使用sudo fuser -k 8000/tcp命令杀死服务器,这工作得很好。但后来当我开始使用CTRL + C时,我不再遇到端口运行的问题。
ps aux | grep runserver
kill -9 <PID>
对于实例,如果步骤1的结果如下所示
root 1041 0.0 0.1 266912 34580 pts/3 S+ 11:31 0:01 python3 manage.py runserver 0.0.0.0:3030 root 1696 4.5 0.1 126128 40708 ? S Feb14 925:43 /usr/local/bin/python manage.py runserver 0.0.0.0:8000
1041和1696是< >强pid < / >强。我们需要在这些进程中选择我们想要终止的进程。
我尝试了所有的解决方案,但它们都不起作用,我建议你继续按下电源按钮,或者如果你的电池是可拆卸的,然后将其移除,所有进程将被杀死,你的本地主机将被重置