小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

Linux的screen工具库实现多终端

Linux,linux,java,运维 额外说明

收录于:18天前

screen简介

Linux screen 命令与多个窗口管理器一起使用。 Linux的命令行方式无法直观地实现多终端操作。与Windows不同,您可以打开多个DOS命令终端来同时执行多个任务。 Linux 需要屏幕库。

Xshell中基于SSH远程连接的软件相当于打开了一个dos终端,但一旦断开连接,命令窗口就会关闭,任务也会停止。使用SSH远程连接服务器时,运行的程序需要保证在此期间窗口不能关闭,连接不能断开,否则当前窗口中运行的任务会被杀死。借助screen,可以实现简单的多窗口持久化任务。

例如在配置spring boot项目上线时首先需要确定项目是可以正常运行的,在外网也可以访问到。这是如果基于SSH连接的使用java -jar - XXX.jar来运行项目,缺点是该连接不可以断开,但是使用screen技术就可以持久化的运行。

screen安装与使用

  1. 安装
sudo apt install screen 安装screen
  1. 指数
screen -ls

# 该命令也可以查看是否安装成功
  1. 创建新终端
screen -S dosname
  1. 连接到对应名称的终端
screen -r name

screen -D -r name # 关闭上一哥终端开启新的终端

总结

  • 新窗户

1)可直接通过命令screen新建一个窗口,并进入窗口。但通过这种方式新建的窗口没有名字,只有系统分配给它的一个id。当需要恢复窗口时,只能通过id号来恢复。
2)通过命令screen -S name,这样就可以新建一个名字为name的窗口,同样系统也会分配给它一个id,当恢复该窗口时既可以通过id号也可以通过窗口名。

  • 分离会话

退出当前新建的窗口,通过快键键Ctrl+a+d实现分离,此时窗口会跳出[detached]的提示,并回到主窗口。

  • 恢复会话窗口
    首先查看当前有哪些screen窗口,通过命令:screen -ls 将列出窗口列表

在这里插入图片描述
可以通过以下命令恢复pyone窗口:screen -r pyonescreen -r 2739013

  • 杀死会话窗口
    通过命令kill -9 threadnum注意此处只能通过id号来杀死窗口。
# 强制关闭
screen -S -X yourname quit

screen -S 会话名称 -X quit

  • 清除死去窗口
    通过命令screen -wipe这个命令将自动清除所有处于dead状态的窗口

  • 退出回复

a.完全退出回话杀死当前screen会话进程
exit
b.保持会话退出,这样退出的话,以后还可以通过screen -r (name)恢复会话,快捷命令
ctrl A D

范围:

-A 将所有窗口调整为当前终端的大小。

-d - 使指定的屏幕作业脱机。

-h 指定窗口中的缓冲区行数。

-m 强制创建新的屏幕作业,即使该屏幕作业当前正在运行。

-r 恢复脱机屏幕作业。

-R 首先尝试恢复离线作业。如果未找到离线作业,则会创建新的屏幕作业。

-s 指定创建新窗口时要执行的 shell。

-S 指定屏幕作业的名称。

-v 显示版本信息。

-x 恢复先前离线的屏幕作业。

-ls 或 –list 显示所有当前屏幕作业。

-wipe 检查所有当前屏幕作业并删除不再可用的屏幕作业。

Screen命令参数:
-A -[r|R] 将所有的视窗都调整为目前终端机的大小。
-c filename 用指定的filename文件替代screen的配置文件’.screenrc’.
-d [pid.tty.host] 断开screen进程(使用该命令时,screen的状态一定要是Attached,也就是说有用户连在screen里)。一般进程的名字是以pid.tty.host这种形式表示(用screen -list命令可以看出状态)。
-D [pid.tty.host] 与-d命令实现一样的功能,区别就是如果执行成功,会踢掉原来在screen里的用户并让他logout。
-h <行数>   指定视窗的缓冲区行数。
-ls或–list 显示目前所有的screen作业。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-p number or name 预先选择一个窗口。
-r [pid.tty.host] 恢复离线的screen进程,如果有多个断开的进程,需要指定[pid.tty.host]
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s shell 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。(用来替代[pid.tty.host]的命名方式,可以简化操作).
-v 显示版本信息。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
-x 恢复之前离线的screen作业。

项目持久化

连接linux并上传spring boot项目

在这里插入图片描述

java -jar -XXX.jar启动项目

在这里插入图片描述

项目的界面

@RestController
public class TestController {
    

    //@ConfigurationProperties读取配置文件转java对象
    @Autowired
    private Method method;

    //@Value直接读取属性
    @Value("${method.header}")
    private String header;

    //Environment对象遍历读取
    @Autowired
    private Environment environment;


    @GetMapping(value = "/title")
    public String method3(){
    
        String title = method.getTitle();
        return title;
    }

    @GetMapping(value = "/header")
    public String method4(){
    
        return header;
    }

    @GetMapping(value = "/one")
    public String method5(){
    
        return environment.getProperty("method.one");
    }


}

浏览器访问

在这里插入图片描述

当断开服务后
在这里插入图片描述
浏览器无法访问

在这里插入图片描述
那么如何持久化任务呢?这就需要借助screen

在这里插入图片描述

新终端重新运行项目
在这里插入图片描述

Ctrl+A+D退出该终端

在这里插入图片描述

退出后如上图所示会提示存在一个pd.name的进程在运行,screen -ls也可以查看

在这里插入图片描述
这是浏览器访问任何成功访问即实现了简单的持久化

在这里插入图片描述
可以通过screen -S -X yourname quit来强制停掉。

. . .

相关推荐

额外说明

Bootstrap设置表格宽度不起作用

更改名称为table的class 将table-layout属性设置为fixed .table{ table-layout: fixed; } js中初始化表格时,在columns中指定width属性 columns: [ {

额外说明

详解-Spring响应处理

SpringMvc_响应处理 当服务器向客户端响应数据时,SpringMVC框架会使用“转换器”(Converter)将方法的返回值进行转换,及处理响应时的响应头(Response Headers)等内容,针对返回值类型不同,SpringMVC框架还会自

额外说明

渗透工具-Ladon

Ladon一款用于大型内网渗透的多线程插件 含端口扫描、 服务识别、 网络资产、 密码爆破、 高危漏洞检测 一键GetShell, 批量A段/B段/C段以及跨网段扫描, 支持URL、主机、域名列表扫描。

额外说明

Java即时通讯(IM)——陌生人交友了解

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

BUGKU 聪明的小羊

聪明的小羊 题目描述:一只小羊翻过了2个栅栏 fa{fe13f590lg6d46d0d0} 目标:得到flag 栅栏密码 (把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话)。这里是两个一组。 通过解密工具解密后得到flag

额外说明

软件工程-软件开发

一、软件开发方法⭐ 1. 结构化开发方法 用户至上,自顶向下,逐步分解(求解),严格区分工作阶段,每阶段有任务与成果,强调系统开发过程的整体性和全局性,系统开发过程工程化,文档资料标准化。 优点: 理论基础严密,它的指导思想是用户需求在系统建立之前就能被

额外说明

【Python 随练】海滩上原来最少有多少个桃子?

题目: 考虑以下数学等式: 809 * ?? = 800 * ?? + 9 * ?? + 1 其中 ?? 代表一个两位数。已知 8 * ?? 的结果为两位数,9 * ?? 的结果为三位数。求解 ?? 代表的两位数,以及 809 * ?? 的结果。 简介:

额外说明

与爱为伍(2)

    “老师,请留步,我们很舍不得您,非常非常舍不得您,但是,我们必须告诉您,我们必须离开您,我们必须去工作,去谈恋爱,去奋斗,这件事十万火急,我们一天也不能等,请您接受我们离开前最后的问候。”      毕业前的时光总是很焦躁,特别是在听完<奋斗>里

额外说明

Web Services上传和下载文件

通过Web Services上传和下载文件 随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,我们不但需要通过Web Services传递字符串信息,而且需要传递二进制文件信息。下面,我们就分别介绍如何通过We

额外说明

【重学数据结构篇2 下】链表代码练习

一、准备工作 为方便代码分享,便于有需要的朋友查看。我将练习代码放在了github上面,传送门。 关于GitHub:之前只知道GitHub可以去嫖别人优秀的代码,自己之前上传代码也是直接网站拖拽。在昨天看了软件工程关于团队合作之后,才发现控制版本的必要性

ads via 小工具