使用screen后台实时执行命令
在做一个大体积的数据备份时,在远程终端上直接运行备份脚本back.sh,或运行back.sh&放到后台运行,此时关闭远程终端,或网络断开都会让命令停止运行。此时就要使用到screen命令。
screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口一样。
(1).安装screen软件包
可以直接使用yum安装
1 | [root@xuexi ~]# yum -y install screen |
也可以挂载CentOS7的光盘镜像安装
1 2 3 4 | [root@xuexi ~]# rpm -ivh /mnt/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm 准备中... ################################# [100%] 正在升级/安装... 1:screen-4.1.0-0.25.20120314git3c29################################# [100%] |
(2).screen使用方法
直接在命令行键入screen命令
1 | [xf@xuexi ~]$ screen |
screen会创建一个全新的shell窗口,你可以执行任意程序,就像在ssh窗口一样。
比如说我们使用vim创建一个txt文件,并输入一部分数据。
1 2 3 4 5 6 7 8 | [xf@xuexi ~]$ vim a.txt //并随意输入一些数据 a bb ccc dddd eeeee ffffff |
输入完成后退出插入模式回到正常模式,按下<Ctrl>+a+d。此时会显示如下部分
1 2 | [root@xuexi ~]# screen [detached from 10992.pts-0.xuexi] //分离出一个独立的会话 |
一段时间后,或者关闭了当时的终端,如果还想要回到之前的screen会话
1 2 3 4 5 6 | [root@xuexi ~]# screen -ls //查看已经建立会话的ID There is a screen on : 10992.pts-0.xuexi (Detached) 1 Socket in / var /run/screen/S-root. [root@xuexi ~]# screen -r 10992 //重新建立会话 |
分离出独立会话后,即使关闭当前终端,也可再次使用。如果想关闭screen会话,使用exit命令。
(3).常用参数
screen -S [会话名称] 指定建立会话的名称
1 2 3 4 5 6 | [root@xuexi ~]# screen -S test [detached from 11347.test] [root@xuexi ~]# screen -ls There is a screen on : 11347.test (Detached) 1 Socket in / var /run/screen/S-root. |
screen -ls 列出当前所有的会话
screen -r [会话ID|会话名称] 回到指定会话,可以是会话名称,也可以是会话ID
1 2 3 4 | [root@xuexi ~]# screen -r test [detached from 11347.test] [root@xuexi ~]# screen -r 11347 [detached from 11347.test] |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性