• screen的使用


    ubuntu screen_大海_百度空间

    ubuntu screen
    2010-12-28 10:07

    系统管理员经常需要远程登录服务器,然后在服务器上跑一些程序;有个时候得跑很长时间(超过12小时),这是如果程序没结束就退出远程管理终端,远程跑的程序很有可能就此当掉;以前常用的解决方式是用命令nohup;但是nohup也有很多的问题.

    当有了screen,这一切便都迎刃而解了,敲入命令screen,会创建一个跑着shell的单一窗口,在这里面,你可以跑你所需要的程序,然后Ctrl+a d退出刚创建的窗口(回到进入screen前的环境),然后再敲入命令screen创建新的终端窗口,就这样,你可以建立多个有shell的窗口(这些窗口里都可以跑你自己的应用),这样就是你退出远程管理窗口(进入screen的环境)

    你的screen窗间的窗口都不会关闭,里面跑得应用自然也不会当掉
    用screen -ls可以看所有的screen sessions
    用screen -r sessionid可以进sessionid指定的特定的screen session
    最后
    screen session不再使用的时候
    screen -r sessionid进去
    exit退出即可
    Unix/Linux 工具: Screen 命令使用
    screen使用
    使用screen非常简易.只需在SHELL键入screen,便可打开一个screen session。
    而在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。现在让我来简单介绍基本的命令C-a c -> Create,开启新的 window
    C-a n -> Next,切换到下个 window
    C-a p -> Previous,前一个 window
    more..
    less.. C-a C-a -> Other,在两个 window 间切换
    C-a w -> Windows,列出已开启的 windows 有那些
    C-a 0 -> 切换到第 0 个 window
    C-a 1..9 -> 切换到第 1..9 个windowC-a a -> 发出 C-a,在 emacs, ve, bash, tcsh 下可移到行首C-a t -> Time,显示当前时间,和系统的 load
    C-a K(大写) -> kill window,强行关闭当前的 windowC-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、
    复制就像用使用 vi 一样C-b Backward,PageUp
    C-f Forward,PageDown
    H(大写) High,将光标移至左上角
    L Low,将光标移至左下角
    0 移到行首
    $ 行末
    w forward one word,以字为单位往前移
    b backward one word,以字为单位往后移
    Space 第一次按为标记区起点,第二次按为终点
    Esc 结束 copy mode
    C-a ] -> Paste,把刚刚在 copy mode 选定的内容贴上C-a ? -> Help,显示简单说明C-a d -> detach,将目前的 screen session (可能含有多个 windows)
    丢  到后台执行 当按了 C-a d 把 screen session detach 掉后,会回到还没进 screen 时的状态,此时在  screen session 里每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。  下次 login 进来时:screen -ls -> 显示所有的 screen sessions
    screen -r [keyword] -> 选择一个screen session 恢复对话若 screen -ls 里有 Attached sessions:
    screen -d [keyword] -> 强制 detach,以便「接手」过来 实例
    说明看了那么多,让我们用一个实际例子来结束我们今天的学习。在我们开启一个screen后,然后使用joe编辑一个文件,之后因为临时需要离开这时就可以运行Ctrl+a d,显示如下:[becks@ec-base becks]$ screen
    [detached]这个时候当我们运行ps -e 可以看到pts/2这个我刚刚运行的screen正在运行joe
    6264 pts/2 00:00:00 bash
    6354 pts/2 00:00:00 joe而当我们回来后想恢复这个session,只需要键入screen -r,而当你有多个session时候,系统将提示你选择一个,如下:
    [becks@ec-base becks]$ screen -r
    There are several suitable screens on:
    6263.pts-1.ec-base (Detached)
    6382.pts-1.ec-base (Detached)
    Type "screen [-d] -r [pid.]tty.host" to resume one of them.输入该session的pid进行恢复
    [becks@becks becks]$ screen -r 6263想退出screen的session,和退出shell一样,只需要键入exit命令,成功退出后将有以下提示
    [screen is terminating]

  • 相关阅读:
    还不懂MySQL索引?这1次彻底搞懂B+树和B-树
    11条MySQL规范,你知道的有几个?
    4个点说清楚Java中synchronized和volatile的区别
    还不知道如何实践微服务的Java程序员,这遍文章千万不要错过!
    14个Java并发容器,你用过几个?
    分布式事务解决方案,中间件 Seata 的设计原理详解
    一篇文章搞明白Integer、new Integer() 和 int 的概念与区别
    一线大厂面试官最喜欢问的15道Java多线程面试题
    70道阿里百度高频Java面试题(框架+JVM+多线程+算法+数据库)
    关于spark当中生成的RDD分区的设置情况。
  • 原文地址:https://www.cnblogs.com/lexus/p/2362782.html
Copyright © 2020-2023  润新知