linux远程关闭不中断
场景描述
系统管理员经常通过ssh或者telnet远程登录到Linux服务器来进行远程管理,需要运行一些需要很长时间才能完成的任务,必须等待他们执行完毕,比如远程操作备份,或者传输一些大的文件。如果需要临时断开,或者发生意外网络中断和终端意外断开,你正在执行的任务就会被kill掉。
为了解决这样的问题,GNU screen就是防止这种情况的一种方法。
什么是screen
screen是GNU计划中用于命令行终端切换的自由软件,用户可以通过连接多个本地或者远程的命令行会话,并在其间自由切换。screen可以看做是窗口管理器的命令行界面版本,功能非常强大。主要功能有:会话恢复、多窗口、会话共享。
yum install screen #安装命令
rpm -qi screen #安装完成之后不要急于使用该命令,使用该命令查看其描述信息,这是一种良好的习惯
当然如果你觉得你的英文能力足够好的话就可以直接查看man手册了。
screen语法
#screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>] [-r <作业名称>] -s [-S <作业名称>]
screen选项
-A 将所有的视窗都调整为目前终端的大小-d <作业名称> 将制定的screen作业离线-h <行数> 制定视窗的缓冲区行数-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业-r <作业名称> 恢复离线的screen作业-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业-s 制定建立新视窗时,所要执行的shell-S <作业名称> 制定screen作业的名称-v 显示版本信息-x 加入到一个活动的会话里面(会话共享)-ls 显示目前所有的screen作业--list-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业
screen常用的参数
建立一个默认的screen会话
[root@centos6 ~]#screen #窗口大小和终端相同的默认screen会话
列出当前所有的会话
[root@centos6 ~]#screen -ls #列出活动的会话和已经分离的会话
There is a screen on:2581pxs-0.centos6 (Attached)1 Socket in /var/run/screen/S-root.
wKioL1nBHv-w1tLhAACCy8EQOkI502.png-wh_50
新建一个叫做session1的会话
[root@centos6 ~]#screen -S session1
[root@centos6 ~]#screen -ls
There is a screen on:
1914.session1 (Attached)
1 Socket in /var/run/screen/S-root.
回到session1这个会话
为演示效果 在session1中编辑一个文件,然后直接关闭终端不正常的断开。
重新连接远程主机,执行screen -rsession1
wKioL1nBHxPR4uKAAADV2h_xayk102.png-wh_50
远程detach某个会话
screen -d session1
重新打开一个终端,使用screen -d选项远程分离会话,分离之前和之后效果图如下,可看出分离会打断会话的使用,但不打断其任务的执行,依旧可以使用screen -r session1来恢复。
wKiom1nBH4bTIydYAAD3R5Mbrcs403.png-wh_50
wKioL1nBH2KQCxARAAEutNdPdFw948.png-wh_50
结束当前session并回到sessionname这个session
[root@centos6 ~]#screen -S session2
[root@centos6 ~]#screen –ls
[root@centos6 ~]#screen -d -r session1
#结束当前的session2,并回到session1会话
screen会话中的组合键
都是以ctrl + a开始。这里的ctrl+a是指按下ctrl+a ,松开,然后再按下其他键,笔者在最初使用时以为是同时按下,很别扭,仔细读过文档才发现是这种用法,希望读者不要掉进这个小坑里。
Ctrl+a ? 显示所有键绑定信息
Ctrl+a c 创建一个新的运行shell的窗口并切换到该窗口
Ctrl+a
Ctrl+a n Next,切换到下一个窗口
Ctrl+a p Previous,切换到前一个窗口
Ctrl+a 0…9 切换到第0…9个窗口
Ctrl+a [space] 从窗口0循序切换到窗口9
Ctrl+a C-a 在最近使用两个窗口之间切换(C和a同时按下)
Ctrl+a x 锁住当前的窗口,需要用户密码解锁
Ctrl+a d 暂时离开当前的会话,当不影响其会话中的任务执行 #比较常用,可以多使用
Ctrl+a z 把当前会话放到后台执行,可以使用jobs,fg等命令进行管理
Ctrl+a w 显示所有的窗口列表
Ctrl+a t Time,显示当前时间和系统的负载
Ctrl+a K 强行关闭当前的窗口
在窗口的最顶端标识,并不在命令提示符中显示,请读者多注意观察。
对于其中的组合键读者无需死记,更多的使用信息使用Ctrl+a,?查看这里不再详述
wKioL1nBH3GhZHRlAADhF10umw8582.png-wh_50
会话共享
我们可以从QQ的远程桌面操作联想到screen的会话共享,有时我们遇到某个问题特别棘手,就可以使用会话共享的方式让别的技术大牛来帮助你解决问题,你可以看到他做的所有操作,当然也可以对权限进行限制,属于screen的高级应用,这里只演示简单的会话共享。
终端1执行
[root@centos6 ~]#screen -S help
终端2执行
[root@centos6 ~]#screen -ls
There is a screen on:
2511.help (Attached)
1 Socket in /var/run/screen/S-root.
[root@centos6 ~]#screen -x help
这时两个终端之间就建立了会话共享了,更多的应用场景需要每一位运维工程师去挖掘。
推荐:http://www.path8.net/tn/archives/3746
转载 http://blog.51cto.com/yangzhiheng/1966974
linux远程关闭不中断相关推荐
- Linux 远程工具 基础命令
Linux 远程工具 基础命令 文章目录 Linux 远程工具 基础命令 1.虚拟机关键配置名词解释 1.1.虚拟网络编辑器说明 2.远程链接工具 3.linux 命令准则 4.系统运行命令 5.常用 ...
- linux socket关闭连接 shutdown与close
在Linux socket关闭连接的方法有两种分别是shutdown和close,首先看一下shutdown的定义 #include<sys/socket.h>int shutdown(i ...
- Linux 远程登录
一.远程登录 Linux系统中是通过ssh服务实现的远程登录功能,默认ssh服务端口号为 22. Window系统上 Linux 远程登录客户端有SecureCRT, Putty, XShell等 1 ...
- 使用windows调用Linux远程桌面
一.安装所需要的软件 yum install -y xrdp yum install -y vnc* chkconfig xrdp on chkconfig vncserver on 二.修改配置 a ...
- linux关闭涉及安全的服务,Linux中关闭不必要服务减少漏洞
Linux中关闭一些不必要使用的服务进程以减少漏洞.因为是桌面机应用,因此只保留必要的服务就可以了.下面是一个例子,基本上可以满足用户需要. #可以使用chkconfig --list来查看系统打开的 ...
- linux 远程控制权限,总结一下linux远程控制方法
总结一下linux远程控制方法 发布时间:2008-09-08 17:03:57 作者:佚名 我要评论 方法: 1.rlogin.rsh等r系列命令.因为有较大的安全隐患,所以现在基本上废弃不 ...
- Linux socket关闭连接shutdown与close
在Linux socket关闭连接的方法有两种分别是shutdown和close,首先看一下shutdown的定义 #include<sys/socket.h> int shutdown( ...
- Linux系统关闭或重新启动主机的命令详解
即使现在Linux系统基本都是相对稳定,但有时候驱动程序和应用程序也可能存在一些小问题,这时就需要重新启动Linux系统主机,今天美联科技就来讲解下,关闭或重新启动Linux系统的几个实用命令. 1. ...
- Linux 远程开机(walk on lan)
Linux 远程开机(walk on lan) 一,什么情况下需要远程开机? 如果我们的服务器没有部署在本地(实际上通常都是这样的,我们会把服务器托管到IDC机房), 而且服务器在机房中不止一台 ...
最新文章
- 文件上传的单元测试怎么写?
- ViewPager 实现页面左右滑动的简单案例1
- iOS 应用程序的生命周期浅析
- 用Github做一个静态网页(GithubPages)
- 编译过程、静态库和动态库
- day07_mysql基本操作
- python json操作_Python读取JSON数据操作实例解析
- SQL2005之后MS SQL版本 T-SQL 新增语法、函数(二)
- Android Studio 常用快捷键和使用技巧
- 【机器学习】基础之线性代数(超详细总结)
- 小米无线网卡linux驱动下载,Linux下安装MT7601U无线网卡驱动
- assignment to ‘float *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]指针类型错
- sass实现前端页面基础框架布局
- 寻找平面上的极大点(信息学奥赛一本通-T1230)
- AWB——Complementarity-enhanced Mutual Networks for Unsupervised Domain Adaptation in Person Re-ID
- 女巫攻击Sybil Attack 笔记
- tsLint环境配置及用法示例
- Android Studio 连真机提示No Device Found,adb.exe无法找到入口
- PCA-python实现综合评价求解-续
- 电脑蓝屏开不了机提示 Your PC/Device needs to be repaired你的设备需要被修复
热门文章
- jquery滚动条到底部触发事件
- c语言330转化成字符,c/字符串,字符转数字,数字转字符(转)
- html5中加亮文本,html实现高亮关键字
- C语言寻找错误是哪个快捷键,求大佬改正寻找一下错误,
- java生成三级级联的数据,微信小程序三级级联,自定义json数据源
- Mybatis中mapper接口里方法重载的实现
- ucla研究生计算机科学,详解UCLA研究生录取数据,达到什么标准才能稳被录?
- docker容器没有apt_使用Docker快速搭建Rails开发环境
- javascript 自定义类型
- IntelliJ IDEA部署javaweb项目