• Linux


    GNU's Screen

    homepage
    Screen是由GNU计划开发的用于命令行终端切换的自由软件,可以看作是窗口管理器的命令行界面版本。
    可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。

    • 多窗口
      在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。
      用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。
    • 会话共享与限制
      可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。
      同时提供了窗口访问权限的机制,可以对窗口进行密码保护。
    • 会话恢复与分离
      如果Screen本身没有终止,在其内部运行的会话都可以恢复。即使网络连接中断,只要再次登录后执行screen -r就可以恢复先前已经打开的会话。
      同样也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。

    安装

    CentOS系统中执行:yum install screen
    Debian/Ubuntu系统执行:apt-get install screen

    常用命令

    列出所有会话:screen -ls
    创建一个随机命名的会话:screen
    创建一个名称为test的会话:screen -S test
    分离test会话,但会话中的任务会继续执行:screen -d test
    通过screen name恢复test会话:screen -r test
    通过session ID恢复test会话:screen -r <session ID>
    创建一个处于分离模式(Detached),名称为test的会话:screen -dmS test

    使用总结

    (Detached)---->挂起状态,无终端在连接会话
    (Attached)---->有终端在连接会话。
    在会话中输入exit:永久退出本会话,也即是删除本会话,显示信息“screen is terminating”。
    多个session之间切换:先分离会话回到shell,再通过screen -ls查看会话列表,然后使用screen -r恢复到目标会话。
    停止screen session:会话中输入exit正常退出,或者 kill -9 PID (session ID同时也是PID)。
    对于处于Attached模式的会话,不能直接screen -r,需要先screen -d,然后才能screen -r。

    Note

    不要在session中嵌套建立session。
    不建议在一个session中对另一个session做相关操作,例如:在session中直接恢复其他session会话。

  • 相关阅读:
    技术收集
    Entity Framework的扩展库
    暂时收集
    php 处理高并发的思路
    nginx缓存优先级(缓存问题者必看)
    mysql5.5主从配置
    php源码编译常见错误解决方案
    今天开始要改变模式了
    nrpe 在ubuntu上安装遇到的问题
    zendstudio 10下载汉化
  • 原文地址:https://www.cnblogs.com/anliven/p/6055069.html
Copyright © 2020-2023  润新知