Linux的screen工具库实现多终端
screen简介
Linux screen命令用于多重视窗管理程序。Linux这种命令行模式的没办法直观的实现多终端运行。不像windows一样打开几个dos命令终端就可以同时多操作任务。Linux需要借助screen库。
像Xshell之中基于SSH远程连接的软件,就相当于开启了一个dos终端,但是一旦断开,就关闭了命令窗口,任务也就停止了。利用SSH远程连接服务器,运行程序需要保证在此期间窗口不能关闭并且连接不能断开,否则当前窗口所运行的任务就被杀死。借助screen就可以实现简单的多窗口,来持久化任务。
例如在配置spring boot项目上线时首先需要确定项目是可以正常运行的,在外网也可以访问到。这是如果基于SSH连接的使用java -jar - XXX.jar
来运行项目,缺点是该连接不可以断开,但是使用screen技术就可以持久化的运行。
screen安装与使用
- 安装
sudo apt install screen 安装screen
- 索引
screen -ls# 该命令也可以查看是否安装成功
- 创建新的终端
screen -S dosname
- 连接对应名称终端
screen -r namescreen -D -r name # 关闭上一哥终端开启新的终端
总结
- 新建窗口
1)可直接通过命令screen新建一个窗口,并进入窗口。但通过这种方式新建的窗口没有名字,只有系统分配给它的一个id。当需要恢复窗口时,只能通过id号来恢复。
2)通过命令screen -S name
,这样就可以新建一个名字为name的窗口,同样系统也会分配给它一个id,当恢复该窗口时既可以通过id号也可以通过窗口名。
- 分离会话
退出当前新建的窗口,通过快键键Ctrl+a+d
实现分离,此时窗口会跳出[detached]的提示,并回到主窗口。
- 恢复会话窗口
首先查看当前有哪些screen窗口,通过命令:screen -ls
将列出窗口列表
可以通过以下命令恢复pyone窗口:screen -r pyone
或 screen -r 2739013
- 杀死会话窗口
通过命令kill -9 threadnum
注意此处只能通过id号来杀死窗口。
# 强制关闭
screen -S -X yourname quitscreen -S 会话名称 -X quit
清除死去窗口
通过命令screen -wipe
这个命令将自动清除所有处于dead状态的窗口退出回话
a.完全退出回话杀死当前screen会话进程
exit
b.保持会话退出,这样退出的话,以后还可以通过screen -r (name)恢复会话,快捷命令
ctrl A D
参数:
-A 将所有的视窗都调整为目前终端机的大小。
-d 将指定的screen作业离线。
-h 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或–list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
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对象@Autowiredprivate Method method;//@Value直接读取属性@Value("${method.header}")private String header;//Environment对象遍历读取@Autowiredprivate 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
来强制停掉。
Linux的screen工具库实现多终端相关推荐
- linux的screen工具下载,Linux终端下的强大工具 - screen
使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题. Screen工具是一个终 ...
- 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 screen工具
通过后台服务的方式 在远程主机上建立一个rsync的服务器,在服务器上配置好rsync的各种应用,然后将本机作为rsync的一个客户端连接远程的rsync服务器. 在128主机上建立并配置rsync的 ...
- linux下screen工具使用
转自:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html 一.背景 系统管理员经常需要SSH 或者telent 远程登录到Lin ...
- linux 32 telnet 工具,Telnet/SSH/SSH2终端工具(Zoc terminal)
zoc terminal是一款终端工具,它有着类似于securecrt的功能,具有行标签制定,历史命令,多窗口等功能特性,也是一款很适合linux系统管理员使用的一款软件 基本简介 ZOC是一个强大的 ...
- rsync服务同步,linux日志,screen工具
2019独角兽企业重金招聘Python工程师标准>>> 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 扩展 Linux ...
- 77.Linux系统日志,screen工具介绍
Linux系统日志 日志重要吗?必须的,没有日志我们怎么知道系统状况?没有日志如何排查一个trouble?日志记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到***时** ...
- rsync通过服务同步、linux系统日志、screen工具
rsync通过服务同步 /etc/rsyncd.conf是rsync的默认配置文件,该配置文件不存在,需要编辑内容 主服务器上的操作: 1.[root@test rsync]# cat /etc/rs ...
- Linux CentOS7 rsync通过服务同步、linux系统日志、screen工具
一.rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口. log file:指定日志文件. pid file:指定pid文件,这 ...
- 三十六、rsync通过服务同步、Linux系统日志、screen工具
三十六.rsync通过服务同步.Linux系统日志.screen工具 一.rsync通过服务同步 该方式可以理解为:在远程主机上建立一个rsync的服务器,在服务器上配置好各种应用,然后本机将作为客户 ...
最新文章
- 机器学习Tips:关于Scikit-Learn的 10 个小秘密
- oracle 清理跟踪文件trc,trm
- ML一:python的KNN算法
- MySQL查询语句(select)详解
- java struts2 作用_struts2是什么?如何使用?
- Security+ 学习笔记16 密钥管理
- 机器学习算法与Python学习
- C++中Vector/Map/List中尽量使用指针,避免直接保存对象
- 学习Spring,这篇就够了
- 用手持式频谱分析仪进行干扰检测
- win10下移动pagefiles.sys文件到D盘
- 如何下载大同市卫星地图高清版大图
- Oracle Wallet Manager
- 视频超分:Zooming Slow-Mo(Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution)
- Skywalking+Nacos实现高可用集群和动态配置
- PyQT5 QTableView的简单应用
- Caused by: java.lang.IllegalArgumentException报错
- 用 PyQt5 制作动态钟表
- 你只要上传两张毫无关联的照片「这个网站就会自动帮你合成了!」
- python画图实践(超级简单)