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