返回

如何列出正在运行的 `screen` 会话?追踪你的实验

Linux

管理 screen 会话:找到正在运行的实验

作为一名程序员或技术爱好者,在服务器上使用 screen 管理多个实验是一项必备技能。然而,随着时间的推移,追踪这些实验可能成为一项挑战,尤其是当它们跨越多个服务器时。

列出正在运行的 screen 会话

掌握列出正在运行的 screen 会话至关重要,这样你就可以轻松地:

  • 查看正在运行的实验的输出
  • 重新启动已完成的实验
  • 释放不再需要的会话资源

要列出正在运行的 screen 会话,请使用以下步骤:

  1. ssh 到目标服务器。
  2. 运行以下命令:
screen -ls
  1. 解析输出。

screen -ls 命令将显示所有正在运行的 screen 会话,包括:

  • 会话名称: 通常是一个随机字符串
  • 会话 ID: 一个数字
  • 窗口数量: 会话中打开的窗口数

示例输出:

There are screens on:
        34563.pts-0.server1 (05/15/22 15:30:13) (Attached)
        34564.pts-0.server2 (05/15/22 15:30:13) (Attached)
        34565.pts-0.server3 (05/15/22 15:30:13) (Attached)

上面的输出表明有三个正在运行的 screen 会话:

  • 会话 34563 位于服务器 server1,名称为 pts-0,于 2022 年 5 月 15 日 15:30:13 启动,并且已连接。
  • 会话 34564 位于服务器 server2,名称为 pts-0,于 2022 年 5 月 15 日 15:30:13 启动,并且已连接。
  • 会话 34565 位于服务器 server3,名称为 pts-0,于 2022 年 5 月 15 日 15:30:13 启动,并且已连接。

通过使用 screen -ls 命令,你可以轻松地识别哪些服务器上有正在运行的 screen 会话,并跟踪正在进行的实验。

常见问题解答

1. 如何重新连接到特定的 screen 会话?

screen -r <session_id>

例如,要重新连接到会话 34563:

screen -r 34563

2. 如何从 screen 会话中分离?

Ctrl-a,然后按 d

3. 如何杀死一个 screen 会话?

screen -X -S <session_name> quit

例如,要杀死会话名为 my_experiment 的会话:

screen -X -S my_experiment quit

4. 如何查看正在运行的 screen 会话的详细信息?

screen -ls -D

这将显示每个会话的附加信息,例如会话创建日期、会话状态以及所附加的客户端信息。

5. 如何快速查找特定 screen 会话?

你可以使用 grep 命令过滤 screen -ls 的输出:

screen -ls | grep "my_experiment"

这将显示包含字符串 "my_experiment" 的所有 screen 会话。

结论

掌握列出正在运行的 screen 会话是有效管理远程实验的关键。通过使用 screen -ls 命令,你可以轻松地跟踪会话、重新连接到会话并根据需要终止会话。下次需要追踪你的实验时,请记住这个方便的技巧,节省时间并提高工作效率。