【Linux Screen命令】Linux用户注销后可长时间运行的命令行

1. 使用情境

你有没有这样的经历:你有一台远程计算机,并在上面执行长时间运行的任务,突然连接断开,SSH 会话终止,而导致你的工作进度丢失。
幸运的是,有一个名为 Screen 的实用程序可以让我们持续会话。甚至是远程计算机用户注销的情况下程序依然在后台运行。

使用情境:

  1. 远程计算机,需要长时间执行一个程序任务。
  2. 远程计算机,拥有多个用户,频繁登入登出不同账户。需要在一个账户下长时间执行一个程序任务。

2. 安装 Screen

在开始使用“screen”之前,您需要确保它已安装在您的 Linux 服务器上。大多数现代 Linux 发行版都预装了“screen”,但如果您的系统上没有它,您可以使用特定于您的发行版的包管理器轻松安装它。

对于基于 Debian/Ubuntu 的系统,请使用以下命令:

sudo apt-get update
sudo apt-get install screen

对于 Red Hat/CentOS 系统,请使用:

sudo yum install screen

对于 Arch Linux,请使用:

sudo pacman -S screen

3. 基本用法

3.1 创建Screen

在控制台中输入 screen 就可以打开一个屏幕会话,创建一个新窗口,并在该窗口中启动一个 shell。但是我强烈建议在创建 Screen 的时候给这个会话取一个名字(后期会话多了之后会分不清)。把 替换成你想取的名字。比如:screen -S app

screen -S 

现在您已经创建了一个screen的屏幕会话。

3.2 执行程序

你可以在新弹出的命令行中执行你的程序,然后甚至关掉命令行窗口。
如果你想screen在后台运行,只需要输入

Ctrl+a d

脱离会话后,在screen会话中运行的程序将继续运行。

3.3 查看Screen

在过了一段时间后,你想查询程序运行的情况或者结果如何。你只需要在命令行中输入:

screen -ls

就会列出screen正在运行的会话:

There are screens on:
    10835.app  (Detached)
    10366.pts-0.linuxize-desktop   (Detached)
2 Sockets in /run/screens/S-linuxize.

可以看到当前有两个会话正在运行,其中一个就是我们刚创建的叫app的会话。如果想恢复/查看app会话的内容只需要输入:

screen -r 10835

3.4 结束会话

如果你想结束一个screen会话,还是以app会话为例,你只需要输入:

screen -XS 10835 quit

此时再用 screen -ls 查看时 app 会话将不复存在。

4. 高级用法

以下是管理 Linux Screen Windows 的一些最常用命令:

Ctrl+a c 创建一个新窗口(带shell)。
Ctrl+a " 列出所有窗口。
Ctrl+a 0 切换到窗口 0(按编号)。
Ctrl+a A 重命名当前窗口。
Ctrl+a S 将当前区域水平分割为两个区域。
Ctrl+a | 将当前区域垂直分割为两个区域。
Ctrl+a tab 将输入焦点切换到下一个区域。
Ctrl+a Ctrl+a 在当前窗口和上一个窗口之间切换
Ctrl+a Q 关闭除当前区域之外的所有区域。
Ctrl+a X 关闭当前区域。

本文记录screen的基本用法,更多详细用法可以参考这里

Reference

[1] https://linuxize.com/post/how-to-use-linux-screen/
[2] https://askubuntu.com/questions/356006/kill-a-screen-session

你可能感兴趣的:(Remote,Desktop,Service,linux,运维,服务器)