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

Screen终端管理工具

文章目录

  • Screen终端管理工具
    • 背景
    • nohup介绍
    • screen介绍
      • 安装screen
      • 查看终端
      • 新建终端
      • 退出终端
      • 进入终端
      • 删除会话
      • 帮助命令
  • 总结

Screen终端管理工具

背景

对大佬只有膜拜,可能永远无法超越,在工作交接中大佬用到了一个screen启动了程序,这是什么?我只知道这是中文"屏幕"的意思,难不成还有个软件?果不其然,那就是个软件,大佬给我演示了一波,看了看神奇的效果,但最后还是没有记住,下面咱们一起研究研究,希望在适合的场景中能用到它。
有些场景是我们正在运行程序,但又不能让会话断掉,那么这个怎么处理呢?一般情况下是采用的后台运行 nohup 命令 & 运行,这也是一种方法,有没有其他的方式呢,但有些场景是需要交互的,对于这种场景来说nohup就没有那么好用了。

screen是linux下的一种视窗多重复用管理程序。在使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题。来自百度百科

nohup介绍

nohup 运行免受挂断影响的命令,输出到非终端设备,将显示的内容输出到nohup.out文件中。

以下面一段死循环的python代码为例

import timen = 100
sum = 0
counter = 1
while counter <= n:
# while True:time.sleep(1)sum = sum + countercounter += 1print("Hello World",counter)
print("1 到", n, "相加的和:", sum)

终端执行命令,输出结果集

[wdq@WDQCVM darren]$ python3 HelloWord.py
Hello World 2
Hello World 3
Hello World 4
Hello World 5
Hello World 6
Hello World 7
Hello World 8
Hello World 9
Hello World 10
Hello World 11
1 到 10 相加的和: 55
[wdq@WDQCVM darren]$ 

nohup 运行程序

[wdq@WDQCVM darren]$ nohup python3 HelloWord.py 
nohup: ignoring input and appending output to ‘nohup.out’

不在终端运行,nohup 运行,当程序结束时将日志输出到nohup.out,但不能满足后台运行

nohup且后台(&) 运行程序

[wdq@WDQCVM darren]$ nohup python3 HelloWord.py &
[1] 12877
[wdq@WDQCVM darren]$ nohup: ignoring input and appending output to ‘nohup.out’

这种场景是后台运行的,运行过程中不会自动刷新日志

当程序运行结束后输出日志

[wdq@WDQCVM darren]$ more nohup.out 
Hello World 2
Hello World 3
Hello World 4
Hello World 5
Hello World 6
Hello World 7
Hello World 8
Hello World 9
Hello World 10
Hello World 11
1 到 10 相加的和: 55

nohup 还可以将日志重定向到其他路径,也可以扔掉不要

nohup python3 HelloWord.py  > FILE &
nohup python3 HelloWord.py  > /dev/null &

属于系统自带的,不要重新安装,使用方法简单,使用简单但功能也是比较简单,不支持实时刷新日志信息。

screen介绍

安装screen

以下是在Centos7.9版本进行演示的

yum install screen 

查看终端

[wdq@WDQCVM darren]$ screen -ls
No Sockets found in /var/run/screen/S-wdq.
[wdq@WDQCVM darren]$ 

新建终端

# 新建终端 screen -S 名称
[wdq@WDQCVM darren]$ screen -S hello
[wdq@WDQCVM darren]$ python3 HelloWord.py
Hello World 2
Hello World 3

退出终端

Ctrl+a+d

再次查看终端

[wdq@WDQCVM darren]$ screen -ls
There is a screen on:14369.hello     (Detached) # 已分离
1 Socket in /var/run/screen/S-wdq.
[wdq@WDQCVM darren]$ 

进入终端

进入原来终端,刚才的东西原样存在

screen -r 进程号或者screen -r 名称均可

[wdq@WDQCVM darren]$ screen  -r hello
[wdq@WDQCVM darren]$ python3 HelloWord.py
Hello World 2
Hello World 3
Hello World 4
Hello World 5
Hello World 6
Hello World 7
Hello World 8
Hello World 9
Hello World 10
Hello World 11
1 到 10 相加的和: 55
[wdq@WDQCVM darren]$ 

退出窗口切不可ctrl+z,这种强制退出,会将程序也一同终止。

创建一样名字的会话

[wdq@WDQCVM darren]$ screen -S hello2
[wdq@WDQCVM darren]$ screen -ls
There are screens on:15795.hello2    (Detached)15672.hello2    (Detached)14369.hello     (Detached)
3 Sockets in /var/run/screen/S-wdq.[wdq@WDQCVM darren]$ screen -d -r hello2
There are several suitable screens on:15795.hello2    (Detached)15672.hello2    (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
[wdq@WDQCVM darren]$ 

这时候要填写完整名称进入会话

[wdq@WDQCVM darren]$ screen -d -r  15795.hello2
[wdq@WDQCVM darren]$ 

对比带-d和不带的区别

screen -r session_name
screen -d -r session_name

如果只需要重新连接到已存在的会话而不需要分离当前会话screen -r session_name
如果需要分离当前会话并进入目标会话,则可以使用 screen -d -r session_name

删除会话

删除会话screen -X -S session_name quit

[wdq@WDQCVM darren]$ screen -ls
There are screens on:15795.hello2    (Attached)15672.hello2    (Detached)14369.hello     (Detached)
3 Sockets in /var/run/screen/S-wdq.
[wdq@WDQCVM darren]$ screen -X -S 15795.hello2 quit 
[screen is terminating]
[wdq@WDQCVM darren]$ 
[wdq@WDQCVM darren]$ screen -ls
There are screens on:15672.hello2    (Detached)14369.hello     (Detached)
2 Sockets in /var/run/screen/S-wdq.
[wdq@WDQCVM darren]$ 

screen的快捷键居多,详细使用请查看进行使用

帮助命令

man --help
man screen 

总结

要想善其事、必先利其器用到哪个工具后要先学会基本使用,然后去研究官方文档。然后就是必须在测试环境进行使用熟练了以后再在生产环境使用。有些时候要改掉一些习惯,比如我喜欢使用ctrl+z退出终端,那果断不可取。

相关文章:

Screen终端管理工具

文章目录 Screen终端管理工具背景nohup介绍screen介绍安装screen查看终端新建终端退出终端进入终端删除会话帮助命令 总结 Screen终端管理工具 背景 对大佬只有膜拜&#xff0c;可能永远无法超越&#xff0c;在工作交接中大佬用到了一个screen启动了程序&#xff0c;这是什么…...

【python自动化办公】PysimpleGUI官网案例全部项目代码文件及运行截图

PysimpleGUI官网案例全部项目代码文件及运行截图 0 项目文件整体预览窗口1 pysimpleGUI下面所有元素2 pysimpleGUI下面所有元素示例3 加载多GIF图片4 使用PIL进行动态图片加载5 自动保存关闭时窗口位置信息6 绘制柱状图7 图像编码18 图像编码29 无边界窗口10 设置图片按钮11 按…...

9.处理this和防抖、节流

9.1 this指向-普通函数 普通函数的调用方式决定了this的值&#xff0c;即【谁调用this的值 指向谁】 普通函数没有明确调用者时this值为window&#xff0c;严格模式下没有调用者时this的值为undefined 9.2 this指向-箭头函数 箭头函数中的this与普通函数完全不同&#xff0…...

Spark操作Hive表幂等性探索

前言 旁边的实习生一边敲着键盘一边很不开心的说:做数据开发真麻烦,数据bug排查太繁琐了,我今天数据跑的有问题,等我处理完问题重新跑了代码,发现报表的数据很多重复,准备全部删了重新跑。 我:你的数据操作具备幂等性吗? 实习生:啥是幂等性?数仓中的表还要考虑幂等…...

【可变形卷积3】 DCNv2 安装

使用RTM3D 代码&#xff0c;CenterTrack代码需要用DCN 1、安装DCNv2 &#xff08;1&#xff09;github上最新版的DCNv2源码在"https://github.com/CharlesShang/DCNv2"&#xff0c;但是该版本源码不支持PyTorch1.7&#xff0c;如果使其支持PyTorch1.7需要做以下修改…...

归并排序 与 计数排序

目录 1.归并排序 1.1 递归实现归并排序&#xff1a; 1.2 非递归实现归并排序 1.3 归并排序的特性总结: 1.4 外部排序 2.计数排序 2.1 操作步骤: 2.2 计数排序的特性总结: 3. 7种常见比较排序比较 1.归并排序 基本思想: 归并排序(MERGE-SORT)是建立在归并操作上的一种…...

机器学习之逻辑回归

import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression # 获得数据 names[Sample code number,Clump Thickness,Uniformity…...

操作符详解上(非常详细)

目录 二进制介绍二进制2进制转10进制10进制转2进制数字2进制转8进制和16进制2进制转8进制2进制转16进制 原码、反码、补码移位操作符左移操作符右移操作符 位操作符&#xff1a;&、|、^逗号表达式 二进制介绍 在初学计算机时我们常常会听到2进制、8进制、10进制、16进制……...

React 高阶组件(HOC)

React 高阶组件(HOC) 高阶组件不是 React API 的一部分&#xff0c;而是一种用来复用组件逻辑而衍生出来的一种技术。 什么是高阶组件 高阶组件就是一个函数&#xff0c;且该函数接受一个组件作为参数&#xff0c;并返回一个新的组件。基本上&#xff0c;这是从 React 的组成…...

【NepCTF2023】复现

文章目录 【NepCTF2023】复现MISC与AI共舞的哈夫曼codesc语言获取环境变量 小叮弹钢琴陌生的语言你也喜欢三月七么Ez_BASIC_IImisc参考 WEBez_java_checkinPost Crad For You独步天下配置环境独步天下-镜花水月环境变量提权 独步天下-破除虚妄总结 独步天下-破除试炼_加冕成王知…...

大文件切片上传

创建组件&#xff1a;创建一个组件用于处理文件上传&#xff0c;命名为Upload.vue。 <template><div><input type"file" change"handleFileChange" /><button click"startUpload">开始上传</button></div> …...

ubuntu切换python版本

在没有安装类似anoconda的管理工具的时候&#xff0c;我们常常会被Ubuntu下的Python版本切换问题所头疼。 可以使用update-alternatives工具进行python版本的任意切换 当使用update-alternatives工具来切换Ubuntu系统上的Python版本时&#xff0c;您实际上是在系统范围内选择…...

docker 安装 elasticsearch、kibana 7.4.2

切换root 用户 su root 拉起镜像 docker pull elasticsearch:7.4.2 docker pull kibana:7.4.2 #1、创建Elasticsearch配置文件夹 mkdir -p /mydata/elasticsearch/config ​ #2、创建Elasticsearch数据文件夹 mkdir -p /mydata/elasticsearch/data #3、创建Elasticsearch插件…...

【es6】函数参数设置默认值

1、es6之前的函数参数默认值写法 1.1、使用短路或||的写法 当y为空时&#xff0c;y判断为false &#xff0c;走||右边的&#xff0c;所以y world;当y不为空时&#xff0c;y判断为true&#xff0c;不需要再运行||右边的&#xff0c;所以 y y function log(x, y) {y y || W…...

Pytest和Unittest测试框架的区别?

如何区分这两者&#xff0c;很简单unittest作为官方的测试框架&#xff0c;在测试方面更加基础&#xff0c;并且可以再次基础上进行二次开发&#xff0c;同时在用法上格式会更加复杂&#xff1b;而pytest框架作为第三方框架&#xff0c;方便的地方就在于使用更加灵活&#xff0…...

C#基础知识(一)

一、C#程序结构 《1》命名空间的声明&#xff08;namespace declaration&#xff09; 《2》一个class 《3》class方法 《4》class属性 《5》一个main方法 《6》语句&#xff08;statements&#xff09;&表达式&#xff08;Expressions&#xff09; 《7》注释 注&#xff1a…...

我还不知道?Android组件化插件化模块化

Android组件化、插件化和模块化是针对Android应用程序开发的一种架构设计思想和开发方式。 组件化&#xff08;Componentization&#xff09;&#xff1a; 组件化是将一个大型的Android应用程序拆分成多个独立的组件&#xff08;Module&#xff09;&#xff0c;每个组件可以独…...

借助 AI 工具,真的能成为 10x 工程师?

或许你听说过 10x 工程师吗&#xff1f; 如果你问猎头公司 10x 工程师是什么意思&#xff0c;他们可能会说 “生产力”&#xff01;10x 是指完成任务比别人快 10 倍的工程师。 2019 年&#xff0c;Twitter 上就曾经对 10 x 工程师这一议题有过一次空前热烈的讨论&#xff0c;引…...

TypeScript 面向对象

TypeScript 接口 TypeScript 接口定义如下&#xff1a; interface interface_name { } 以下实例中&#xff0c;我们定义了一个接口 IPerson&#xff0c;接着定义了一个变量 customer&#xff0c;它的类型是 IPerson。 customer 实现了接口 IPerson 的属性和方法。 interf…...

k8s 中快速启动curl pod 做api test

场景 k8s上运行的pod需要进行api测试,由于开发使用的镜像都是最小化构建,不能保证现有的pod中一定有curl工具,于是需要启动一个带有curl工具的测试pod专门进行api测试 指令 kubectl run curl-test-pod --imagecurlimages/curl -n {namespace} -i --tty -- sh上述指令实现在指…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...