我使用python manage.py runserver
启动Django服务器,然后使用CONTROL-C退出,但我仍然可以访问ROOT_URLCONF
中的网址,为什么?
答案 0 :(得分:2)
在没有看到你的脚本的情况下,我不得不说你有阻塞调用,例如在CTRL + C时运行的socket.recv()或os.system(可执行文件)。
你的脚本在CTRL + C之后被卡住了,因为python在当前命令完成之后但在下一个命令之前执行KeyboardInterrupt
。如果有一个阻塞函数等待响应(例如退出代码,数据包或URL),直到它超时,除非您通过任务管理器或关闭控制台中止它,否则您将被卡住。
在线程的情况下,它会在完成当前命令后终止所有线程。同样,如果你有阻塞调用,线程将不会退出,直到它收到响应。
答案 1 :(得分:1)
可能你在另一个地方运行了另一个进程。
以下是列出命令包含manage.py
的所有进程的方法:
ps ax | grep manage.py
以下是杀死他们的方法:
pkill -f manage.py
答案 2 :(得分:-1)
只需键入exit(),这就是我所做的并且有效