screen
保持远程任务运行:详细指南在远程服务器上工作时,尤其是在运行长时间任务(如模型训练、数据处理等)时,你可能不希望因为 SSH 连接断开而导致进程被终止。一个简单而有效的解决方案是使用 screen
。在本文中,我将为你详细介绍如何使用 screen
,让你的任务即使在你断开连接后仍然继续运行。
screen
?screen
是一个强大的终端多路复用器。它允许你在一个终端窗口中创建多个会话,并在你断开 SSH 连接后保持这些会话继续运行。通过使用 screen
,你可以启动一个模型训练或其他任务,然后随时断开 SSH 连接,而不必担心任务被中断。
screen
如果你的系统还没有安装 screen
,你可以通过以下步骤进行安装:
sudo apt update
sudo apt install screen
完成安装后,你可以开始使用 screen
进行任务管理。
screen
的基本使用步骤screen
会话首先,我们要创建一个新的 screen
会话。在创建时,你可以为会话指定一个名称,以便后续管理。
screen -S mysession
这里的 mysession
是会话的名称,你可以用任何你喜欢的名称来替换它。
screen
会话中运行命令进入 screen
会话后,你可以运行任何需要长时间执行的命令或脚本,例如:
python train_model.py
此时,任务会在这个 screen
会话中运行。
screen
会话如果你需要暂时离开或者关闭终端窗口,你可以按下以下组合键将 screen
会话置于后台运行:
Ctrl + A
,然后按 D
。这会将你从 screen
会话中分离出来,但任务仍然在后台继续运行。
screen
会话如果你想重新连接到之前断开的 screen
会话,可以使用以下命令查看当前正在运行的 screen
会话:
screen -ls
你会看到类似如下的输出:
There is a screen on:
1234.mysession (Detached)
1 Socket in /run/screen/S-yourusername.
要重新连接到名为 mysession
的会话,你可以使用:
screen -r mysession
或者通过会话的 ID 连接:
screen -r 1234
screen
会话当你不再需要继续运行任务时,可以在会话中按 Ctrl + D
或者输入 exit
来结束 screen
会话。这将终止会话并关闭任务。
screen
的高级用法screen
还支持多个窗口的管理,你可以在一个 screen
会话中创建多个终端窗口。这对于需要同时监控多个任务非常有用。
在 screen
会话中,按 Ctrl + A
,然后按 C
创建一个新窗口。新窗口相当于一个独立的终端会话,你可以在其中运行其他任务。
按 Ctrl + A
,然后按数字键(如 0
、1
等)切换到相应的窗口。
你可以将屏幕分割成多个区域,每个区域可以显示不同的窗口内容:
Ctrl + A
,然后按 S
。Ctrl + A
,然后按 |
(或 shift + \
)。使用 Ctrl + A
,然后按 Tab
可以在分割的区域之间切换。
要关闭当前窗口,可以按 Ctrl + D
或者输入 exit
。
screen
是一个极其有用的工具,特别适合在服务器上运行长时间任务的场景。它允许你创建多个会话并在 SSH 断开时继续保持任务运行。此外,通过高级功能(如多窗口和屏幕分割),screen
提供了强大的任务管理能力。
如果你希望保持远程任务运行并随时可以重新连接,这篇指南将帮助你有效地使用 screen
进行任务管理。赶紧试试吧!
screen
命令速查表命令 | 作用 |
---|---|
screen -S |
创建一个新的 screen 会话并命名 |
Ctrl + A 然后按 D |
将会话置于后台运行(分离会话) |
screen -r |
重新连接到一个分离的 screen 会话 |
screen -ls |
列出所有正在运行的 screen 会话 |
Ctrl + A 然后按 C |
在 screen 会话中创建一个新窗口 |
Ctrl + A 然后按 Tab |
切换分割窗口区域 |
Ctrl + A 然后按 S |
水平分割屏幕 |
Ctrl + A 然后按 ` |
` |
Ctrl + D 或 exit |
退出并结束当前的 screen 会话 |
通过掌握这些命令,你将能够更高效地管理远程任务,并确保它们在你不在线时继续运行。
这篇博客希望能为大家在使用 screen
时提供帮助,尤其是在运行长时间任务时的场景。对于那些需要管理多个任务、希望保持任务持续运行的开发者来说,screen
是一个必备工具。