zoukankan      html  css  js  c++  java
  • 避免ssh断开导致运行命令的终止:screen

    事情是这样的,需要使用ssh登陆服务器,进行工程的编译,结果不知道什么原因ssh出现write failed:broken pipe,掉线了。反复实验了好几次还是这样(白花花的时间啊,又是configure又是make的),掉线的结果当然是需要重新登陆,然而正因为如此,之前编译的相当于中断了。有没有办法,让ssh掉线,但是之前的命令依然继续执行呢。

    经过同事的指点,找到相应的命令screen。

    使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的 session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。[1]

    换言之,我在ssh登陆到服务器时,在服务器上使用screen -S zrss,创建一个zrss名称的session,然后在这个session中进行工程的编译,这样即使断线,在服务器session中的命令还在运行。

    如果之前断线了,再次ssh登陆服务器后,使用screen -ls可以知道,有几个session,如果session状态为detached,使用命令screen -r zrss即可,或者是进程ID,即可回到之前窗口。

    zrss@pc:~$ ssh zhuang2@pek-lpgtest2.wrs.com
    zhuang2@pek-lpgtest2.wrs.com's password: 
    Last login: Fri Jul 25 09:02:35 2014 from pc.corp.ad.wrs.com
    [zhuang2@pek-lpgtest2 ~]$ screen -S zrss
    [zhuang2@pek-lpgtest2 ~]$ ls
    总用量 345688
    -rw-r--r-- 1 zhuang2 users   6610432 7月  25 09:07 intel-x86-64-bzImage-WR6.0.0.0_standard
    -rw-r--r-- 1 zhuang2 users 347014977 7月  25 09:08 intel-x86-64-glibc-std-standard-dist.tar.bz2
    [zhuang2@pek-lpgtest2 ~]$ Write failed: Broken pipe
    zrss@pc:~$ ssh zhuang2@pek-lpgtest2.wrs.com
    zhuang2@pek-lpgtest2.wrs.com's password: 
    Last login: Fri Jul 25 09:29:22 2014 from pc.corp.ad.wrs.com
    [zhuang2@pek-lpgtest2 ~]$ screen -ls
    There are screens on:
        26091.pts-47.pek-lpgtest2    (Detached)
        9250.zrss    (Detached)
    2 Sockets in /var/run/screen/S-zhuang2.
    
    [zhuang2@pek-lpgtest2 ~]$ screen -r zrss

    在screen中输入exit即可终止session

    [1]http://soft.chinabyte.com/os/277/12383277.shtml

    [2]http://www.vpser.net/manage/screen.html

  • 相关阅读:
    Leetcode 647 回文子串
    计算机专业课程——答案搜集
    Centos搭建go环境以及go入门
    android studio实现圆角的button
    关于区块链的认识和看法
    LeetCode 96. 不同的二叉搜索树
    LeetCode 120. Triangle (三角形最小路径和)详解
    LeetCode 64最小路径和
    微信发起摄像头接口请求 上传头像 图片
    Vue解决项目白屏以及(反向代理)
  • 原文地址:https://www.cnblogs.com/hzhesi/p/3867351.html
Copyright © 2011-2022 走看看