如何用bash脚本退出Django开发服务器?

我写了一个bash脚本来启动一个Django开发服务器,但是,我希望能够在运行bash脚本的同时退出服务器。 我正在为Koding.com编写一个Web应用程序,该应用程序通过按下button运行bash脚本,在链接到用户个人VM的在线terminal中启动Django进程,并希望用户能够结束还有一个button。 我知道控制C会结束这个过程,但我一直无法find如何在bash脚本中做到这一点。 我怎么能这样做? 谢谢! 在这里输入图像描述

更新:我最终结合我select的答案这个问题和这个答案从另一个问题,我问(如何在django shell中运行unix命令)来解决我的问题: https : //stackoverflow.com/a/22777849/2181017

您可以杀死在8000 / TCP上侦听的进程:

 fuser -k 8000/tcp 

fuser命令显示哪些进程正在使用指定的文件,套接字或文件系统, -k选项也会杀死它们。

等等,只是为了澄清,暂时无法退出该django shell的东西,所以我可以运行一个unix命令?

当您启动开发服务器时,它将在前台运行,阻止提示。 您可以通过按CTRL+Z来暂停在前台运行的任务,然后将任务发送到运行bg命令的背景(我假设您正在运行bash shell或类似的程序)。 jobs命令将列出暂停的任务或在后台运行的任务。 您可以使用fg命令将任务带到前台。

请参阅bash手册页( man bash )。

GNU屏幕呢? http://www.gnu.org/software/screen/

 screen ./manage.py runserver 0.0.0.0:8000 ctrl + a then d (this will detach from screen) exit (from the shell) 

当您需要停止时,请重新登录到shell中

 screen -r ctrl + c exit (from screen) exit (from the shell) 

把它放在~/.screenrc ,以获得一个漂亮的屏幕状态行

 hardstatus alwayslastline hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]' 

你可以简单地使用CTRL+C来退出你的服务器。
其他与Ubuntu系统,你可以做下面的。

 prashant@prashant-OptiPlex-3010:~$ ps -eaf|grep runserver prashant 3445 2805 4 11:20 pts/0 00:00:00 python manage.py runserver prashant 3446 3445 5 11:20 pts/0 00:00:00 /usr/bin/python manage.py runserver prashant 3449 3375 0 11:20 pts/1 00:00:00 grep --color=auto runserver prashant@prashant-OptiPlex-3010:~$ kill 3446 prashant@prashant-OptiPlex-3010:~$