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

时间:2014-04-01 02:16:17

标签: python linux django bash shell

我编写了一个bash脚本来启动Django开发服务器,但是,我希望能够在运行bash脚本时退出服务器。我正在为Koding.com编写一个Web应用程序,通过按下按钮运行bash脚本,在连接到用户个人虚拟机的在线终端中启动Django进程,我希望用户能够结束此过程按一下按钮。我知道控件C会结束这个过程,但是我无法在bash脚本中找到如何做到这一点。我怎么能这样做?谢谢! enter image description here

更新:我最终将我选择的答案与我提出的另一个问题(如何在django shell中运行unix命令)结合我的问题答案:https://stackoverflow.com/a/22777849/2181017

3 个答案:

答案 0 :(得分:7)

您可以终止侦听8000 / TCP上的进程:

fuser -k 8000/tcp

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

  

等等,只是为了澄清,没有办法暂时退出那个django shell的东西,以便我可以运行unix命令?

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

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

答案 1 :(得分:1)

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}]'

答案 2 :(得分:0)

您只需使用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:~$