错误:该端口已在使用中.

Ash*_*ena 177 python django

当我尝试django重新启动它的显示消息时:

这个端口已经运行....

这个问题特别针对ubunut 10.x而不是所有OS.how我可能会在我正在进行的当前系统上实现这一点吗?你能建议我吗?

Mou*_*nir 461

输入更简单的解决方案sudo fuser -k 8000/tcp.这应该会终止与端口8000关联的所有进程.

编辑:

对于osx用户,您可以使用 sudo lsof -t -i tcp:8000 | xargs kill -9

  • 在Mac上,您需要使用`sudo lsof -i tcp:8000`然后终止显示的进程ID. (19认同)
  • 未知选项:k (3认同)

She*_*ary 43

netstat -ntlp
Run Code Online (Sandbox Code Playgroud)

它会显示这样的东西.

   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     
Run Code Online (Sandbox Code Playgroud)

所以现在只需关闭已经运行Django/python的端口就可以杀死与之关联的进程.

kill -9 PID
Run Code Online (Sandbox Code Playgroud)

在我的情况下

kill -9 6599
Run Code Online (Sandbox Code Playgroud)

现在运行你的Django应用程序.

  • 如果将来有人遇到这个问题,我已经使用 Mounir 答案中 Gordonc 评论中的命令“$ sudo lsof -i tcp:8000”检查了使用指定端口的进程,然后使用此答案中的命令来杀死它。之后可以在 python 中运行服务器而不会出现问题。 (2认同)

Nan*_*ndy 13

lsof -t -i tcp:8000 | xargs kill -9
Run Code Online (Sandbox Code Playgroud)


Ash*_*ena 11

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
Run Code Online (Sandbox Code Playgroud)


Fre*_*ddy 9

默认情况下,runserver 命令在端口 8000 的内部 IP 上启动开发服务器。

如果要更改服务器的端口,请将其作为命令行参数传递。例如,此命令在端口 8080 上启动服务器:

python manage.py runserver 8080
Run Code Online (Sandbox Code Playgroud)

  • @StephenRauch,问题不是问谁在使用该端口。问题是说明抛出的错误。这是有关如何修复该错误的解决方案。 (3认同)
  • OP 询问如何在端口 8000 上重新启动服务器,而不是要求在另一个端口上运行它 (2认同)

小智 6

>> 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
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码片段可以解决问题,但[包括解释](//meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而那些人可能不知道您建议代码的原因。还请尽量不要在代码中添加解释性注释,这会降低代码和解释的可读性! (3认同)

Jus*_*ill 5

我们不使用这个命令 { sudo lsof -t -i tcp:8000 | xargs kill -9 } 因为它关闭了所有选项卡......你应该使用

ps -ef | 蟒蛇

kill -9 process_id

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

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


mah*_*eju 5

之后输入“fg”作为命令 Ctrl-C
命令:
Fg 将显示哪个正在后台运行。之后Ctrl-C就会停止它。

FG
CTL-C


Ant*_*ntu 5

很抱歉在旧帖子中发表评论,但它可能会帮助人们

只需在您的终端上输入

killall -9 python3
Run Code Online (Sandbox Code Playgroud)

它将杀死在您的机器上运行的所有 python3,并释放您的所有端口。对我什么时候在Django项目中工作有很大帮助。

  • 对于任何可能出于任何其他原因运行 Python 的人来说,这都是极其笨拙的。 (2认同)

Rah*_*tal 5

  1. 在终端中,输入ps aux | grep runserver
  2. 回车键
  3. 在结果执行中使用PIDkill -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
Run Code Online (Sandbox Code Playgroud)

1041 和 1696 是PID。我们需要在其中选择我们想要杀死的进程。