当前位置: 首页 > news >正文

使用screen管理会话

大家在使用SSH或telnet远程连接服务器时,可能都遇到为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连 接,否则这个任务就会被杀掉,一切半途而废了。也许nohup命令可以达到这个目的,如果程序的标准输出/标准错误是终端, nohup默认将其重定向到nohup.out文件。值得注意的是nohup命令只是使得程序忽略SIGHUP信号,还需要使用标记&把它放在后 台运行。

nohup <command> [argument…] &

虽然nohup很容易使用,但还是比较“简陋”的,对于简单的命令能够应付过来,对于复杂交互的程序就麻烦了。那么现在过来瞧瞧screen吧!

1、什么是screen?

screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen中有会话的概念,用户可以在一个screen会话中创建多个 screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。当断开或关闭终端时,只要不杀死screen的进 程,待重新连接后任能继续断开前的操作。

2、screen参数及组合键

启动screen方式有两种,一种是直接在命令提示符下输入screen,这时Screen将创建一个执行shell的全屏窗口。你可以执行任意 shell程序,就像在ssh窗口中那样。在该窗口中键入exit退出该窗口,如果这是该screen会话的唯一窗口,该screen会话退出,否则 screen自动切换到前一个窗口。另一种方式是在screen命令后跟你要执行的程序,例如“ screen ftp”,Screen创建一个执行ftp命令的单窗口会话,退出ftp将退出该窗口/会话。

2.1 screen常用的命令选项

screen的语法格式如下:

screen [ -options ] [ cmd [ args ] ]

常用的选项有:

    -c file	使用配置文件file,而不使用默认的$HOME/.screenrc
-d|-D [pid.tty.host] 不开启新的screen会话,而是断开其他正在运行的screen会话
  -h<行数>  指定视窗的缓冲区行数。
  -m  即使目前已在会话中的screen会话,仍强制建立新的screen会话。
  -r sessionowner/ [pid.tty.host] 重新连接一个断开的会话。多用户模式下连接到其他用户screen会话需要指定sessionowner,需要setuid-root权限。
  -R  先试图恢复离线的会话。若找不到离线的会话,即建立新的screen会话。
  -s  指定建立新screen会话时,所要执行的shell。
  -S sessionname 创建screen会话时为会话指定一个名字
  -v  显示版本信息。
  -x  恢复之前离线的screen会话。
  -ls或--list  显示目前所有的screen会话。
  -wipe  检查目前所有的screen会话,并删除已经无法使用的screen会话。

2.2 screen常用的组合键

screen常用的组合键描述如下:

* 普通列表项目

3、screen的使用

例如当我们ssh登录服务器后,使用scp在传输大文件时,通常的情况就是要耐心的等待文件传输完成才能将终端关闭,那么下面来看看通过screen带来的方便。

首先使用ssh登录服务器,在命令提示符下输入screen:

# screen

在screen shell中输入scp命令,输入密码后开始文件传输。如果不愿意等待,那么直接按下”Ctrl+a+d”的组合键,或者关闭当前的终端,随便怎么操作,只要不杀死screen会话就行。

# scp -r images 172.16.78.111:~
root@172.16.78.111's password:
mondorescue.iso 0% 22MB 22.2MB/s 00:01

使用screen -ls可以查看当前系统所打开的screen会话,如下:

# screen -ls
There are screens on:
20642.pts-1.white (Detached)
20713.pts-1.white (Detached)
2 Sockets in /tmp/screens/S-root.

若要其中的会话,则输入screen -r PID,如下:

# screen -r 20713

执行该命令后,马上就能看到刚才正在进行的scp命令的完成情况,是不是很方便?通过man screen可以看到更详细的screen的参数以及用法。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • linux存储是什么意思,Linux 内存管理中的 RSS 和 VSZ 是什么意思?
  • Microsoft Licenses Flash Lite for Windows Mobile Users
  • HPUX下启动scheduler遇到的问题及解决
  • linux上samba配置全过程,Samba服务器配置和使用全过程
  • linux怎么查看32位,查看Linux是32位还是63位的方法
  • Unix下配置Scheduler的过程和出现的NQSError问题
  • .NET企业级应用架构设计系列之技术选型
  • linux profile缓存清空,让/etc/profile文件修改后立即生效
  • 3G时代还需要WAP吗?
  • 最基本的Socket编程 C#版 [转]
  • c语言比较两个字符串大小写,忽略大小写的字符串比较 C语言
  • Visual C#.Net 网络程序开发-Socket篇
  • c语言写个电子计算机程序,电子计算机 《C语言编程题跟解答》.doc
  • c语言水打印仙花数程序,c语言经典程序
  • 求数组最小差值c语言,编写一个程序,计算一维数组中的最大值,最小值及其差值...
  • 【Linux系统编程】快速查找errno错误码信息
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • ES6简单总结(搭配简单的讲解和小案例)
  • Git 使用集
  • 从零开始的无人驾驶 1
  • 如何设计一个比特币钱包服务
  • 三栏布局总结
  • 深入浅出webpack学习(1)--核心概念
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 双管齐下,VMware的容器新战略
  • 突破自己的技术思维
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • ​如何在iOS手机上查看应用日志
  • # 计算机视觉入门
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (原创)可支持最大高度的NestedScrollView
  • (转)平衡树
  • (转载)利用webkit抓取动态网页和链接
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .net framework 4.8 开发windows系统服务
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET8使用VS2022打包Docker镜像
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • @Not - Empty-Null-Blank
  • @property括号内属性讲解
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [1] 平面(Plane)图形的生成算法
  • [Android]Android开发入门之HelloWorld
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [bzoj 3534][Sdoi2014] 重建
  • [CCF-CSP] 202303-4 星际网络II