避免脚本在关闭远程终端,或网络断开时停止运行,就要使用到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 后台实时执行命令的介绍。