Screen 使用教程

不想看的点击这里直接跳转到使用

Nohup 与 Screen 概述

Nohup

  • 优势:

    • 简单直观: 通过在命令前加nohup,轻松实现后台运行。
    • 忽略挂断信号: 自动处理SIGHUP,保证进程不随终端关闭终止。
    • 输出重定向: 标准输出和错误默认重定向到nohup.out文件。
  • 劣势:

    • 交互性有限: 运行后难以直接查看实时输出或交互,除非查看日志文件。
    • 无会话恢复: 断开后无法重新连接进程,不利于复杂管理。

Screen

  • 优势:

    • 持久会话: 创建持久化会话,断开重连后可继续操作。
    • 高度交互: 实时查看输出,直接向进程发送命令。
    • 多窗口管理: 支持多虚拟窗口,便于多任务并行管理。
    • 灵活输出控制: 虽需手动配置,但能灵活重定向和管理输出。
  • 劣势:

    • 配置要求: 需预先安装,学习使用特定命令。
    • 资源消耗: 相对更耗资源,但现代系统中影响不大。

Screen安装与使用

在多数Linux发行版中,Screen工具可能已经预装。如果未安装,可使用以下命令安装:

对于 Debian/Ubuntu 系统

执行命令:
sudo apt-get install screen

对于 CentOS/RHEL 系统

执行命令:
sudo yum install screen

对于较新版本的RHEL/CentOS,可能需要使用DNF:
sudo dnf install screen

启动 Screen

在终端中输入以下命令启动一个新的Screen会话:
screen

创建命名会话

为Screen会话指定一个名字,便于识别:
screen -S 你的会话名字

列出 Screen 会话

查看当前所有活动的Screen会话, 输入:
screen -ls

重新连接到 Screen 会话

要重新连接到之前断开的Screen会话,执行:
screen -r 会话名字

如果不指定会话名字,默认尝试恢复最近的会话。

Screen 会话内部操作

  • 创建新窗口: 按 Ctrl + a, 然后按 c
  • 切换窗口: 按 Ctrl + a, 然后按 n(下一个)或 p(上一个)
  • 查看窗口列表: 按 Ctrl + a, 再按 " (双引号键)
  • 重命名窗口: 按 Ctrl + a, 然后按 A, 输入新名字
  • 分离会话: 按 Ctrl + a, 然后按 d

结束 Screen 会话

  • 结束单个窗口: 在窗口内执行 exit 或 Ctrl + d
  • 结束整个会话: 关闭所有窗口后执行 exit 或 Ctrl + d; 或者在分离状态下使用命令 screen -X -S 会话名字 quit

高级功能

  • 日志记录: 启动时使用 -L 选项,例如 screen -L -S 日志会话名
  • 屏幕锁定: 按 Ctrl + a, 然后按 x

总结

  • 选用指南:
    • 简单后台运行,无需后续交互 -> Nohup
    • 长期、复杂任务管理,需频繁查看/控制 -> Screen