【问题标题】:Django says port is already in useDjango说端口已经在使用中
【发布时间】:2018-02-11 23:31:58
【问题描述】:

当我运行 Django runserver 命令时,它显示端口已在使用中。所以每次我需要杀死使用该端口的进程并再次运行服务器。

谁能给我一个永久的解决方案?

【问题讨论】:

  • 当然你需要在重新启动之前杀死旧服务器;只有一个进程可以一次绑定到任何给定端口。您是否多次运行manage.py runserver?如果有,为什么?

标签: django


【解决方案1】:

您可以使用其他端口,因为您使用的port 可能有问题。

python manage.py runserver 8080

是的,你需要杀死之前正在运行的服务器。

【讨论】:

    【解决方案2】:

    如果您有其他进程正在运行,则应始终在尝试在同一端口上运行另一个进程之前终止它们。

    我使用以下终端命令:

    sudo fuser -k 8000/tcp
    

    这将杀死指定端口上的进程。

    您还可以在其他端口上运行 Django 开发服务器,假设它们尚未被其他程序使用。

    python manage.py runserver 8001
    

    【讨论】:

      【解决方案3】:

      当您使用 CTRL+Z 而不是 CTRL+C 时会发生这种情况。

      CTRL+Z ->  Suspend process
      CTRL+C ->  Stop process
      

      有很多关于 StackOverflow 的建议。 我想从我的角度推荐最好的方法(你只需要记住两个命令)。

      只需在终端中输入 jobs,即可首先在后台查看作业。

      This is what shows up after you type job

      您可以看到作业编号为 4、5 和 6。 因此,如果我想终止作业 6 的进程,即 python manage.py runserver。我只需输入 kill %6

      Killing job no 6

      虽然有时 CTRL+C 不会终止进程。如果上面的效果不好,你可以使用这个命令:

      sudo fuser -k 8000/tcp
      

      【讨论】:

        【解决方案4】:

        只需运行此命令

        sudo lsof -t -i tcp:8000 | xargs kill -9    
        

        如果您遇到任何其他问题,请单击此链接 https://stackoverflow.com/a/70213044/17497683

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-10-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-12
          相关资源
          最近更新 更多