Linux 使用 screen 后台执行命令的方法

编辑于:2021年12月22日

避免脚本在关闭远程终端,或网络断开时停止运行,就要使用到screen命令。screen 中有会话的概念,可以在一个 screen 会话中创建多个 screen 窗口,在每一个 screen 窗口中就像操作一个真实的 telnet/SSH 连接窗口一样。

安装 screen 软件包

# 可以直接使用yum安装
[root@xuexi ~]# yum -y install screen

# 也可以挂载 CentOS7 的光盘镜像安装
[root@xuexi ~]# rpm -ivh /mnt/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
   1:screen-4.1.0-0.25.20120314git3c29################################# [100%]

screen 使用方法

直接在命令行键入 screen 命令

[xf@xuexi ~]$ screen

screen 会创建一个全新的 shell 窗口,你可以执行任意程序,就像 在ssh 窗口一样。

比如说我们使用 vim 创建一个 txt 文件,并输入一部分数据。

[xf@xuexi ~]$ vim a.txt
//并随意输入一些数据
a
bb
ccc
dddd
eeeee
ffffff

输入完成后退出插入模式回到正常模式,按下 <Ctrl>+a+d 此时会显示如下部分

[root@xuexi ~]# screen
[detached from 10992.pts-0.xuexi]  //分离出一个独立的会话

一段时间后,或者关闭了当时的终端,如果还想要回到之前的 screen 会话

[root@xuexi ~]# screen -ls  //查看已经建立会话的ID
There is a screen on:
    10992.pts-0.xuexi   (Detached)
1 Socket in /var/run/screen/S-root.
 
[root@xuexi ~]# screen -r 10992  //重新建立会话

分离出独立会话后,即使关闭当前终端,也可再次使用。如果想关闭 screen 会话,使用 exit 命令。

常用参数

  • screen -S [会话名称]:指定建立会话的名称
[root@xuexi ~]# screen -S test
[detached from 11347.test]
[root@xuexi ~]# screen -ls
There is a screen on:
    11347.test  (Detached)
1 Socket in /var/run/screen/S-root.
  • screen -ls: 列出当前所有的会话
  • screen -r [会话ID|会话名称]:回到指定会话,可以是会话名称,也可以是会话 ID
[root@xuexi ~]# screen -r test
[detached from 11347.test]
[root@xuexi ~]# screen -r 11347
[detached from 11347.test]

以上就是使用 screen 后台实时执行命令的介绍。

相关推荐