使用 Screen 管理多个终端

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

screen 命令在后台同时运行多个脚本时非常有用。它允许你启动长时间运行的任务,而无需为每个任务保持一个终端窗口打开。下面,我们将介绍如何使用 screen 在后台运行脚本并管理这些会话。

screen 命令使用示例

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/ProcessManagementandControlGroup(["Process Management and Control"]) linux/ProcessManagementandControlGroup -.-> linux/jobs("Job Managing") linux/ProcessManagementandControlGroup -.-> linux/bg_process("Background Management") subgraph Lab Skills linux/jobs -.-> lab-271827{{"使用 Screen 管理多个终端"}} linux/bg_process -.-> lab-271827{{"使用 Screen 管理多个终端"}} end

在后台运行脚本

你有三个脚本在 ~/project 目录中执行不同的任务。

在环境中打开终端(图中的 ① 或 ②),然后输入以下命令:

ls ~/project
终端列出项目文件

如果你想同时运行这三个脚本,可以这样做:

三个脚本同时运行

现在,我们将使用 screen 在分离的会话中同时运行这些脚本。

要使用 screen 在后台运行这些脚本,我们将使用 -dmS 选项:

  • -d 启动一个会话并立即从中分离。
  • -m 强制 screen 创建一个新会话。
  • -S 允许我们为会话命名以便于引用。

启动脚本

打开一个终端并导航到包含脚本的目录。然后,使用以下命令在每个单独的 screen 会话中启动脚本:

screen -dmS task1 ./script1.sh
screen -dmS task2 ./script2.sh
screen -dmS task3 ./script3.sh

管理会话

启动脚本后,你可以使用各种命令管理这些 screen 会话。

列出所有会话

screen -ls
screen 会话列表输出

此命令将显示所有正在运行的 screen 会话。

重新连接到会话

screen -r session_name

如果你想检查输出或与特定脚本交互,可以使用此命令重新连接到其会话。将 session_name 替换为启动脚本时分配的名称(例如 task1task2task3)。

从会话中分离

当你检查完会话后,可以通过按 Ctrl-a 然后按 d 从中分离,并让它在后台继续运行。

终止会话

要终止会话,请使用 screen -r session_name 重新连接到它,然后输入 exit 或按 Ctrl-d

总结

使用 screen 管理多个后台任务可以显著优化你的工作流程,尤其是在处理长时间运行或后台进程时。通过在分离的 screen 会话中运行脚本,你可以保持工作区整洁,并确保你的进程即使在你断开服务器连接或关闭终端后也能继续运行。

尝试使用 screen,探索它如何最好地融入你的工作流程并提升你的工作效率!