linux screen 命令简述

15 篇文章 0 订阅

       在工作中,ssh 登陆系统难免会开多个窗口,进行不同操作,虽然开多个ssh 窗口能解决问题,但如果发生断网之类的远程会话进行的操作也就断了,这显然不是我们想要的,毕竟进行到一半的工作不能说断就断。使用screen 命令即可解决这类问题( 前提是screen 命令不能被中断 )  。

     简单来说,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。( 详细可以参考:https://www.ibm.com/developerworks/cn/linux/l-cn-screen/index.html )

screen 简述

    开启一个screen 窗口的方式有如下:

       1. 直接键入 screen 命令   

            centos  安装 screen 命令( yum -y install screen ) ,ubuntu 安装( sudo apt install -y screen 笔者环境 ubuntu 18.04 )。

zhang@zgp-ubuntu:~$ screen

     2. screen command ( 命令)

       开启screen 窗口,并且启动command 命令 ,退出该command  ,screen 窗口也随之关闭。

zhang@zgp-ubuntu:~$ screen -ls
There is a screen on:
        47620.pts-4.zgp-ubuntu  (2019年11月17日 12时38分43秒)   (Attached)
1 Socket in /run/screen/S-zhang.
zhang@zgp-ubuntu:~$ screen vim
zhang@zgp-ubuntu:~$ screen -ls
There is a screen on:
        47620.pts-4.zgp-ubuntu  (2019年11月17日 12时38分43秒)   (Attached)
1 Socket in /run/screen/S-zhang.
zhang@zgp-ubuntu:~$

  退出vim ,开启的新的窗口也随之关闭。

    3. screen -S  screenName ( 新建screen窗口并将之命名为screenName )


zhang@zgp-ubuntu:~$ screen -S python_test

      创建一个名为 python_test 的窗口

 

暂时断开screen会话

     ctrl + a + d 可以暂时断开screen 会话

在中断前的窗口界面,

 

按下: ctrl + a + d 键后输出

[detached from 66844.python_test]

screen -ls  (  ls 指list ),可以查看 screen 窗口会话。

zhang@zgp-ubuntu:~$ screen -ls
There is a screen on:
        66844.python_test       (2019年11月17日 13时31分20秒)   (Detached)
1 Socket in /run/screen/S-zhang.

screen -r  恢复窗口会话

zhang@zgp-ubuntu:~$ screen -r 66844

恢复到了中断前的窗口会话

 

下面试试,断网 / 不小心关闭了ssh  ,看下 screen 表现如何吧

 用py 累加来模拟日常工作的情况。

 

然后 ctrl + a + d 中断当前会话,关闭ssh  ,即登陆系统( 模拟日常工作进行到一半,断网/ 不小心关闭ssh  ) 。

然后再次登陆ssh 

zhang@zgp-ubuntu:~$ screen -ls
There is a screen on:
        66844.python_test       (2019年11月17日 13时31分20秒)   (Detached)
1 Socket in /run/screen/S-zhang.

可以看到之前的screen 会话并没有中断,我们试着恢复之前的会话,看下之前由于误操作有没有导致job 进度丢失。

zhang@zgp-ubuntu:~$ screen -r 66844

 

发现并没有中断我们之前screen会话中所进行的job 。

在我用ps  查看screen 的时候,发现多了两个看似守护进程的进程( 至于我怎么知道是守护进程,看名字应该是守护进程 )。

所以我在猜测断开 ssh ,screen 没有中断的一大原因是由于它是以守护态运行的,当然这也只是我的猜测而已。

上面只是简单的阐述了我的一点使用心得,screen 命令还是很强大的,详细的请参考:https://www.gnu.org/software/screen/manual/screen.html ,https://www.ibm.com/developerworks/cn/linux/l-cn-screen/index.html 。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值