使用screen后台实时执行命令详解程序员

  在做一个大体积的数据备份时,在远程终端上直接运行备份脚本back.sh,或运行back.sh&放到后台运行,此时关闭远程终端,或网络断开都会让命令停止运行。此时就要使用到screen命令。

  screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口一样。

(1).安装screen软件包

  可以直接使用yum安装

[[email protected] ~]# yum -y install screen

  也可以挂载CentOS7的光盘镜像安装

[[email protected] ~]# 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%] 

(2).screen使用方法

  直接在命令行键入screen命令

[[email protected] ~]$ screen 

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

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

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

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

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

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

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

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

(3).常用参数

screen -S [会话名称]  指定建立会话的名称

[[email protected] ~]# screen -S test 
[detached from 11347.test] 
[[email protected] ~]# screen -ls 
There is a screen on: 
	11347.test	(Detached) 
1 Socket in /var/run/screen/S-root. 

screen -ls  列出当前所有的会话

screen -r [会话ID|会话名称]  回到指定会话,可以是会话名称,也可以是会话ID

[[email protected] ~]# screen -r test 
[detached from 11347.test] 
[[email protected] ~]# screen -r 11347 
[detached from 11347.test] 

  

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/2822.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论