Windows系统下关闭CMD后如何保持Django服务器持续运行?
Windows下让Django服务器关闭CMD后持续运行的方法
首先说明:你用的&是Linux/Unix系统的后台运行语法,Windows CMD不支持,所以没用。给你几个适合Windows的方案:
用start命令启动独立窗口
直接在CMD里执行:start python manage.py runserver这会新开一个CMD窗口运行服务器,关闭原来的窗口完全不影响新窗口里的进程。如果想让新窗口最小化启动,加个参数:
start /min python manage.py runserver把Django做成Windows服务(长期运行首选)
适合需要服务器一直运行的场景,步骤如下:- 先安装依赖:
pip install pywin32 - 在项目根目录新建一个
django_service.py脚本,内容如下:import win32serviceutil import win32service import win32event import sys import os from django.core.management import execute_from_command_line class DjangoService(win32serviceutil.ServiceFramework): _svc_name_ = "DjangoServer" _svc_display_name_ = "Django开发服务器" def __init__(self, args): win32serviceutil.ServiceFramework.__init__(self, args) self.hWaitStop = win32event.CreateEvent(None, 0, 0, None) self.is_running = True def SvcStop(self): self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) win32event.SetEvent(self.hWaitStop) self.is_running = False def SvcDoRun(self): # 替换成你的Django项目根目录绝对路径 os.chdir("C:/path/to/your/django/project") sys.argv = ['manage.py', 'runserver'] execute_from_command_line(sys.argv) if __name__ == '__main__': win32serviceutil.HandleCommandLine(DjangoService) - 以管理员身份打开CMD,进入项目根目录,执行以下命令:
- 安装服务:
python django_service.py install - 启动服务:
net start DjangoServer - 停止服务:
net stop DjangoServer - 卸载服务:
python django_service.py remove
做成服务后,服务器会在后台运行,关闭所有CMD窗口都不受影响,甚至可以设置随系统自动启动。
- 安装服务:
- 先安装依赖:
用NSSM工具包装成服务(操作更简单)
NSSM是一个轻量工具,能快速把任意程序转成Windows服务:- 下载NSSM,解压后把exe所在路径加到系统环境变量
- 管理员身份打开CMD,进入Django项目根目录
- 执行
nssm install DjangoServer,弹出配置窗口:Path选你的Python.exe绝对路径(比如C:/Python39/python.exe)Arguments填manage.py runserverWorking Directory选项目根目录
- 点击
Install Service完成安装,之后可以在Windows服务管理器里启动/停止这个服务。
内容的提问来源于stack exchange,提问作者FlyAcrossVT
相关产品推荐
相关产品推荐

