详解Linux Screen让程序保持后台运行
详解Linux Screen让程序保持后台运行
您是否曾经遇到过在远程计算机上执行长时间运行的任务,突然连接中断,SSH会话终止以及工作丢失的情况。 好吧,这在某个时候发生在我们所有人身上,不是吗? 幸运的是,有一个名为screen的实用程序,可让我们恢复会话。
screen是终端多路复用器,它允许用户访问单个终端窗口内的多个单独的终端会话或远程终端会话(例如使用SSH时)
介绍
Screen 或GNU Screen 是终端多路复用器。 换句话说,这意味着您可以启动屏幕会话,然后在该会话中打开任意数量的窗口(虚拟终端)。 当您的屏幕窗口不可见时,即使您已断开连接,在Screen中运行的进程也将继续运行。
安装Linux GNU Screen
如今,大多数Linux发行版中都已预先安装了Screen 软件包。您可以通过键入以下命令检查它是否已安装在系统上:
screen --version
如果您的系统尚未安装Screen ,则可以使用发行版的软件包管理器轻松安装它:
在Ubuntu和Debian上安装Linux Screen
sudo apt install screen
在CentOS和Fedora上安装Linux Screen
sudo yum install screen
启动Linux Screen
要启动screen会话,只需在控制台中键入screen:
screen
这将打开一个screen会话,创建一个新窗口,并在该窗口中启动一个shell。 现在,您已经打开了一个屏幕会话,您可以通过键入以下内容来获取命令列表:
Ctrl+a ? 或 screen -list
开始命名会话
当您运行多个screen会话时,命名会话很有用。要创建命名会话,请使用以下参数运行screen命令:
screen -S session_name
选择一个描述性的会话名称总是一个好主意。
开始使用Linux Screen
当您开始一个新的screen会话时,它将创建一个带有shell的单个窗口。
在screen会话中你可以有多个窗口。
要创建一个使用shell类型的新窗口可以使用,它将从0 ... 9范围开始的第一个可用数字分配给它:
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 会话中分离:
Ctrl+a d
从Screen 会话中分离后,在Screen 会话中运行的程序将继续运行。
重新连接到Linux Screen
要恢复Screen会话,请使用以下命令:
screen -r
如果您的计算机上正在运行多个Screen会话,则需要在r参数后附加屏幕会话ID。
要查找会话ID,请使用以下命令列出当前正在运行的Screen会话:
screen -ls
如果要还原屏幕16364.pts-0,请键入以下命令:
screen -r 16364
删除当前screen回话
进入当前回话,并输入:
exit
自定义Linux屏幕
Screen启动时,如果存在文件,它将从/ etc / screenrc和〜/ .screenrc中读取其配置参数。我们可以使用.screenrc文件根据喜好修改默认的Screen设置。
这是〜/ .screenrc配置示例,带有自定义状态行和一些其他选项:
# 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屏幕用法
以下是开始使用屏幕的最基本步骤:
- 在命令提示符下,键入screen。
- 运行所需的程序。
- 使用按键顺序Ctrl-a + Ctrl-d从screen会话中分离。
- 通过输入screen -r重新连接到screen会话。
结论
在本教程中,您学习了如何使用Gnu Screen。 现在,您可以开始使用屏幕实用程序,并通过单个会话创建多个屏幕窗口,在窗口之间导航,分离和恢复屏幕会话,并使用.screenrc文件个性化您的屏幕终端