前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解Linux Screen让程序保持后台运行

详解Linux Screen让程序保持后台运行

作者头像
小锋学长生活大爆炸
发布2020-08-13 15:34:37
13.2K0
发布2020-08-13 15:34:37
举报

详解Linux Screen让程序保持后台运行

您是否曾经遇到过在远程计算机上执行长时间运行的任务,突然连接中断,SSH会话终止以及工作丢失的情况。 好吧,这在某个时候发生在我们所有人身上,不是吗? 幸运的是,有一个名为screen的实用程序,可让我们恢复会话。

screen是终端多路复用器,它允许用户访问单个终端窗口内的多个单独的终端会话或远程终端会话(例如使用SSH时)

介绍

Screen 或GNU Screen 是终端多路复用器。 换句话说,这意味着您可以启动屏幕会话,然后在该会话中打开任意数量的窗口(虚拟终端)。 当您的屏幕窗口不可见时,即使您已断开连接,在Screen中运行的进程也将继续运行。

安装Linux GNU Screen

如今,大多数Linux发行版中都已预先安装了Screen 软件包。您可以通过键入以下命令检查它是否已安装在系统上:

代码语言:javascript
复制
代码语言:javascript
复制
screen --version

如果您的系统尚未安装Screen ,则可以使用发行版的软件包管理器轻松安装它:

在Ubuntu和Debian上安装Linux Screen

代码语言:javascript
复制
代码语言:javascript
复制
sudo apt install screen

在CentOS和Fedora上安装Linux Screen

代码语言:javascript
复制
代码语言:javascript
复制
sudo yum install screen

启动Linux Screen

要启动screen会话,只需在控制台中键入screen:

代码语言:javascript
复制
代码语言:javascript
复制
screen

这将打开一个screen会话,创建一个新窗口,并在该窗口中启动一个shell。 现在,您已经打开了一个屏幕会话,您可以通过键入以下内容来获取命令列表:

代码语言:javascript
复制
代码语言:javascript
复制
Ctrl+a ? 或 screen -list

开始命名会话

当您运行多个screen会话时,命名会话很有用。要创建命名会话,请使用以下参数运行screen命令:

代码语言:javascript
复制
代码语言:javascript
复制
screen -S session_name

选择一个描述性的会话名称总是一个好主意。

开始使用Linux Screen

当您开始一个新的screen会话时,它将创建一个带有shell的单个窗口。

在screen会话中你可以有多个窗口。

要创建一个使用shell类型的新窗口可以使用,它将从0 ... 9范围开始的第一个可用数字分配给它:

代码语言:javascript
复制
代码语言:javascript
复制
Ctrl + a c

以下是用于管理Linux Screen Windows的一些最常用命令:

  • Ctrl + a c:创建一个新窗口(带shell)
  • Ctrl + a “:列出所有窗口
  • Ctrl + a 0:切换到窗口0(按数字)
  • Ctrl + a:重命名当前窗口
  • Ctrl + a S:将当前区域水平分为两个区域
  • Ctrl + a | :将当前区域垂直分为两个区域
  • Ctrl + a:选项卡将输入焦点切换到下一个区域
  • Ctrl + a Ctrl + a:在当前区域和上一个区域之间切换
  • Ctrl + a Q:关闭除当前区域外的所有区域
  • Ctrl + a X:关闭当前区域

从Linux Screen 回话中脱离

您可以随时输入以下内容从Screen 会话中分离:

代码语言:javascript
复制
代码语言:javascript
复制
Ctrl+a d

从Screen 会话中分离后,在Screen 会话中运行的程序将继续运行。

重新连接到Linux Screen

要恢复Screen会话,请使用以下命令:

代码语言:javascript
复制
代码语言:javascript
复制
screen -r

如果您的计算机上正在运行多个Screen会话,则需要在r参数后附加屏幕会话ID。

要查找会话ID,请使用以下命令列出当前正在运行的Screen会话:

代码语言:javascript
复制
代码语言:javascript
复制
screen -ls

如果要还原屏幕16364.pts-0,请键入以下命令:

代码语言:javascript
复制
代码语言:javascript
复制
screen -r 16364

删除当前screen回话

进入当前回话,并输入:

代码语言:javascript
复制
代码语言:javascript
复制
exit

自定义Linux屏幕

Screen启动时,如果存在文件,它将从/ etc / screenrc和〜/ .screenrc中读取其配置参数。我们可以使用.screenrc文件根据喜好修改默认的Screen设置。

这是〜/ .screenrc配置示例,带有自定义状态行和一些其他选项:

代码语言:javascript
复制
代码语言:javascript
复制
# Turn off the welcome message startup_message off # Disable visual bell vbell off # Set scrollback buffer to 10000 defscrollback 10000 # Customize the status line hardstatus alwayslastline hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]' 

基本的Linux屏幕用法

以下是开始使用屏幕的最基本步骤:

  1. 在命令提示符下,键入screen。
  2. 运行所需的程序。
  3. 使用按键顺序Ctrl-a + Ctrl-d从screen会话中分离。
  4. 通过输入screen -r重新连接到screen会话。

结论

在本教程中,您学习了如何使用Gnu Screen。 现在,您可以开始使用屏幕实用程序,并通过单个会话创建多个屏幕窗口,在窗口之间导航,分离和恢复屏幕会话,并使用.screenrc文件个性化您的屏幕终端

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 详解Linux Screen让程序保持后台运行
  • 介绍
  • 安装Linux GNU Screen
  • 启动Linux Screen
  • 开始命名会话
  • 开始使用Linux Screen
  • 从Linux Screen 回话中脱离
  • 重新连接到Linux Screen
  • 删除当前screen回话
  • 自定义Linux屏幕
  • 基本的Linux屏幕用法
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档