SSH关闭时,让Django runserver保持活动状态

Dan*_*iel 3 python django ssh server

我还没有能够让Apache使用我的Django应用程序,所以在我确实使用它之前,我在Linux服务器上使用runserver来演示应用程序.问题是每当我关闭与服务器的SSH连接时,runserver都会停止运行.当我说让笔记本电脑进入睡眠状态或丢失互联网连接时,如何让runserver继续运行?

PS我知道runserver不适合生产.

chr*_*-sc 7

使用屏幕

您可以runserver屏幕会话中运行.从该会话分离后,它将继续运行.通过ssh登录并通过启动屏幕会话

screen
Run Code Online (Sandbox Code Playgroud)

它看起来像你常用的终端.现在,运行服务器

python manage.py runserver 8080
Run Code Online (Sandbox Code Playgroud)

在此之后,您可以使用分离会话Ctrl+d.现在,即使退出ssh会话,您的应用也应该可用.

如果要取消runserver,可以重新启动屏幕会话.获取现有会话列表

screen -ls

There is a screen on:
    10989.pts-1.hostname (Detached)
1 Socket in /run/screens/S-username.
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用该命令重新进行操作

screen -R 10989
Run Code Online (Sandbox Code Playgroud)

使用nohup

再次,登录到您的服务器后,启动runserver

nohup python manage.py runserver 8080 &
Run Code Online (Sandbox Code Playgroud)

所有输出的runserver写入(如调试信息等)都将写入nohup.out同一文件夹中调用的文件中.

要在使用后退出服务器,nohup您需要保持显示的进程ID(pid),或者pid随后找到或使用任何其他工具.pstop


Chr*_*ers 5

由于 runserver 不打算在生产中运行/仅用于开发,因此无法内置。

即使生成终端关闭,您也需要使用tmux/ 之类的工具screennohup使进程保持活动状态。