即使在关闭ssh会话后,如何让Django服务器保持运行?

dan*_*007 20 django server-administration

我想出了如何通过运行我的Django应用程序sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80.但是,在我退出终端后,服务器停止运行.

我尝试在后台运行此过程,但服务器在执行后立即关闭sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &.

即使在终端中退出ssh会话后,如何让Django应用程序保持运行?

PS - 对不起,如果这个问题让你感到沮丧.当前端javascript程序员必须以突破性的速度变成服务器管理员时,就会出现这种愚蠢.

Gys*_*cos 28

满足屏幕.

通过ssh连接,启动屏幕.这将在ssh提供的虚拟控制台模拟器之上打开.在那里启动服务器.

然后按Ctrl-a,然后按d.这将分离屏幕会话,使其在后台运行.

要[R] e-attach到它,请使用screen -r.

如果未安装屏幕且无法安装,则可以在尝试时通过向命令添加&来在后台启动应用程序.但是你不应该关闭终端窗口; 只需断开连接,使用bash命令退出或Ctrl-d.

屏幕的优点是,您仍然可以从服务器读取输出,以防出现错误或任何错误.

Screen是一个非常强大的工具,有更多命令.您可以使用Ctrl-a添加新的虚拟窗口,然后使用c(对于Create); 使用Ctrl-a切换窗口,然后是n(下一个)或p(上一个),...

但是你需要安装才能使用它.由于您似乎具有root访问权限,因此这应该不是问题.

编辑:tmux是同一个用例的另一个很好的解决方案.


Rak*_*kib 8

使用screen创建一个新的虚拟窗口,并运行服务器那里.

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

您将看到Django服务器已开始运行.

现在按Ctrl+A,然后按键D从该屏幕分离.它会说:

$ [detached from ###.pts-0.hostname]
Run Code Online (Sandbox Code Playgroud)

您现在可以安全地从终端注销,重新登录终端,在其他目录中执行其他编码,去度假,做任何你想做的事情.


要返回已分离的屏幕,

$ screen -r
Run Code Online (Sandbox Code Playgroud)

要立即杀死django服务器,只需像平常一样按下即可Ctrl+C.


要使用terminate此屏幕而不是detaching此屏幕Ctrl+D.它会说:

$ [screen is terminating]
$
Run Code Online (Sandbox Code Playgroud)


aya*_*587 6

使用nohup.更改您的命令如下:

nohup sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &
Run Code Online (Sandbox Code Playgroud)