【问题标题】:Django check if server is already runningDjango 检查服务器是否已经在运行
【发布时间】:2020-01-21 17:25:47
【问题描述】:

我在 Windows 上,通过manage.py runserver 8001 运行我的 Django 服务器。当我已经运行服务器并再次输入上述命令时,它会启动另一台服务器,侦听相同的 (8001) 端口。我想做的是确定服务器是否已经在运行并停止执行命令,或者停止正在运行的服务器然后运行新服务器。

更新: 我需要自动完成所描述的事情。抛出错误也是可以的。 但是为什么runserver 命令没有抛出错误,如果端口已经很忙?正如this question 所阐明的那样,这是我在(Java Tomcat 服务器、PHP)以及带有 Django 的 Ubuntu 上使用过的平台的标准行为。

【问题讨论】:

    标签: python django windows server


    【解决方案1】:

    您可以使用cmd

     netstat -ano | findStr "8001"
    

    【讨论】:

    • 自动检测呢?如果该端口上有正在运行的服务器(通常在其他服务器解决方案中发生),我希望 runserver 命令引发错误。
    • netstat -ano | grep 8000
    【解决方案2】:

    您可能同时运行两个 Django 项目 要么您正在使用命令提示符运行一个项目 以及使用 IDE 终端的第二个项目

    解决方案

    使用 CTR + C 终止这两个正在运行的项目 或通过执行此操作检查正在使用端口 8001 的项目

    在您的命令提示符下

    netstat -ano | findStr "8001"
    

    您还可以通过在终端上执行以下操作来检查您机器上的哪个进程正在哪个端口上运行:

    netstat -a -b -o -n
    

    **-a **显示所有连接和监听端口。

    -b 显示创建每个连接或侦听端口所涉及的可执行文件。

    -n 显示地址和端口号。

    -o 显示拥有进程 ID。

    【讨论】:

    • 我只是使用 cmd 运行相同的 runserver 命令两次。我想要的是自动检测到这一点。如果该端口上有正在运行的服务器,我希望该命令引发错误(通常在其他服务器解决方案中发生)
    • 我使用 django 已经有一段时间了,没有这样的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2018-08-10
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 2016-07-30
    相关资源
    最近更新 更多