django开发服务器,如何在后台运行时停止它

Posted

技术标签:

【中文标题】django开发服务器,如何在后台运行时停止它【英文标题】:django development server, how to stop it when it run in background? 【发布时间】:2015-01-19 21:27:54 【问题描述】:

我使用clode服务器测试我的django小项目,我输入manage.py runserver &,然后我退出我的cloude服务器,我可以正常访问mysite但是当我重新加载我的cloude服务器时,我没有知道如何停止开发服务器,我必须杀死进程才能停止它,有没有办法停止开发?

【问题讨论】:

这是个好问题。是的,我们所有人都知道如何终止进程,但是当服务提供启动选项时,您会假设您不知道某些事情......并寻找停止。 django 打破了这种范式是一种疏忽。 @KateYoak 好吧,我把它发给了 Django 开发者。 【参考方案1】:

可以通过 Google 找到答案 - 并在其他论坛中回答。示例解决方案是available on the Unix & Linux StackExchange site。

明确地说,你可以这样做:

ps auxw | grep runserver

这将返回进程及其各自的PID,例如:

de        7956  1.8  0.6 540204 55212 ?        Sl   13:27   0:09 /home/de/Development/sampleproject/bin/python ./manage.py runserver

在这种特殊情况下,PID 是7956。现在只需运行它来停止它:

kill 7956

为了清楚/解决某些 cmets,您必须这样做,因为您在后台运行开发服务器(您的命令中的 &)。这就是为什么没有“内置”Django 停止选项的原因......

【讨论】:

您可以在命令行中使用“fg”将作业带到前台吗?我将我的切换到 bg 然后回到 fg。然后 CONTROL-C 完全停止工作。当我启动服务器时,它会打印几行文本,最后一行是“使用 CONTROL-C 退出服务器”。 2018 年 2 月 1 日 - 20:31:32 Django 版本 2.0.1,使用设置 'mysite.settings' 在127.0.0.1:8000 启动开发服务器@ 使用 CONTROL-C 退出服务器。 @the_cat_lady 这也是个好建议!我会说这需要它自己的答案,因为这是另一种方法...... 不幸的是,Django 启动了一个子进程,这使得两个进程,这使得很难从脚本中杀死。特别是因为杀死父母不会杀死孩子。【参考方案2】:

一个班轮..

pkill -f runserver

【讨论】:

太棒了。那是简短而甜蜜的。 小心,以防 多个 'runserver' 进程正在运行!!!这将杀死 所有 正在运行的“runserver”进程。【参考方案3】:

嗯,django 没有提供停止开发服务器的命令似乎是一个错误。之前还以为有啊~~~~~

【讨论】:

我的 ISP 提供了一个非常有限的 shell,它会在某些命令上将我踢出去,比如 kill 甚至 ps :) 虽然我可以轻松执行 python manage.py ...每次我需要执行单个命令时提交支持票。所以我同意 - 必须能够停止服务器【参考方案4】:

Ctrl+c 应该可以工作。如果不是 Ctrl+/ 将强制终止进程。

【讨论】:

【参考方案5】:

据我所知,ctrl+c 或终止进程是在远程机器上执行此操作的唯一方法。 如果您将使用 Gunicorn 服务器或类似的服务器,您将能够使用 Supervisor 来做到这一点。

【讨论】:

ctrl+c 不会停止无限循环。【参考方案6】:

我们可以使用以下命令。

-> netstat -ntlp

然后我们将获取使用 PID 运行的进程数,找到我们的 python 服务器 PID 并杀死进程。

-> 杀死 -9 PID

例如:

【讨论】:

【参考方案7】:

试试这个

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

【讨论】:

非常感谢,唯一可行的解​​决方案。【参考方案8】:

您可以在任务管理器中结束正在运行的 python 任务。 现在从你的项目目录运行python manage.py runserver,它就会工作了。

【讨论】:

【参考方案9】:

您可以通过按 CTRL-BREAK 退出服务器。

【讨论】:

如果它在后台则不会。

以上是关于django开发服务器,如何在后台运行时停止它的主要内容,如果未能解决你的问题,请参考以下文章

Android服务在其仍处于活动状态时停止后台处理

一段时间后如何在iOS中停止后台服务

如何在启动时在后台运行django服务器?

如何让android的service一直在后台运行

当手机进入空闲状态时后台服务停止

如果应用程序正在启动,如何停止后台任务?