错误:该端口已被使用。

当我尝试Django重新启动其显示消息:

这个端口已经在运行….

这个问题,特别是在ubunut 10.x不是所有的OS.how我可以实现这个在我正在工作的当前系统? 你能build议我吗?

只需键入sudo fuser -k 8000/tcp 。 这应该杀死所有与端口8000相关的进程。

编辑:

对于osx用户,您可以使用sudo lsof -t -i tcp:8000 | xargs kill -9 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 

所以现在只要closures已经运行的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 ed kill -9 3440 `enter code here`after that : python manage.py runserver project name 

这是对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 

我们不使用这个命令{sudo lsof -t -i tcp:8000 | xargs kill -9}因为它closures所有的标签…你应该使用

ps -ef | grep python

kill -9 process_id

ps -ef | grep python(用id显示所有进程)

kill -9 11633(11633是进程ID: – / bin / python manage.py runserver)

ps aux | greppipe理

ubuntu 3438 127.0.0 2.3 40256 14064 pts / 0 T 06:47 0:00 python manage.py runserver

杀-9 3438