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开发服务器,如何在后台运行时停止它的主要内容,如果未能解决你的问题,请参考以下文章