screen不间断会话
screen
screen不间断会话服务,可以让程序在后台运行,不占用当前终端的屏幕。
tmux能达到screen同样的效果,scrren需要epel仓库,tmux在base仓库。
tmux参考文档: https://blog.csdn.net/omaidb/article/details/120385011
# 进入sreen环境
screen
# 断开(detached)screen环境
ctrl+a d
# 查看screen的会话
screen -ls
# 恢复会话
screen -r sessionid

安装 screen 工具
# debian系列安装
apt install screen -y
# RHEL系列Linux中,你需要先安装 epel-release 才可以安装 screen
yum install screen -y
screen常用操作
Screen 有两种状态:
attached(连接状态)- 当 “screen” 处于
attached状态时,用户可以在终端窗口中看到 “screen” 正在运行的虚拟终端的输出。
- 当 “screen” 处于
detached(断开状态)- 当 “screen” 处于
detached状态时,虚拟终端仍在后台运行,但用户无法在终端窗口中看到其输出。
- 当 “screen” 处于
恢复或创建会话 -R(推荐)
screen -R重新连接会话,不存在会话则启动新会话。
## -R 创建或恢复会话
## -U 使用UTF-8
screen -R 会话名
screen -RU 会话名
创建会话
# 创建会话
screen -S 会话名
快速创建一个screen会话–懒人方法
# 直接在执行的命令前加上screen 即可创建不间断会话
screen vim test.txt
查看screen会话列表
在 B主机上,通过 ssh 连接到 A主机,并查通过 -ls 选项看当前已经存在的 screen 会话.
ssh it@10.10.10.108
# 查看screen会话
screen -ls
# attached(连接状态)
#There is a screen on: 2107.it (01/14/21 07:30:27) (Attached) 1 Socket in /run/screen/S-it

加入到该会话
# 加入到screen会话it
screen -x it
将指定的screen会话离线
通常用于将无法恢复的窗口下线
# 将指定的screen作业离线
screen -d ${会话名|会话ID}
恢复会话
# 恢复会话
screen -r it
删除死屏
# 删除死屏
screen -wipe
退出会话
# 退出会话
screen -S ${会话名|会话ID} -X quit
分离 screen 会话(放到后台):
按下快捷键 Ctrl + a ,然后按下 d 键。
screen屏幕共享
这样就可以两边共享一个 screen 会话,不管谁运行什么命令,另一个都可以看到;
当你需要退出会话时,你可以运行 exit 来退出会话(当运行 exit 时,两边都会退出 screen 会话。),也可以通过Ctrl+A,D(Ctrl + A 然后按 D,退出单个会话)。
# A和B都ssh登陆一台服务器
A$ ssh root@192.168.10.11
B$ ssh root@192.168.10.11
# A创建一个会话
A$ scrren -S remote_hlep
# B加入这个会话
A$ scrren -x remote_hlep
# A在终端的操作,B可以实时看到
screen分屏
# 创建已一个 screen 会话
it@serverc:~$ screen -S test
在当前窗口内创建会话窗口
但此时下面屏幕什么还没有,你需要通过Ctrl+A,然后按C在下面屏幕中创建终端

这样我们就可以在下面屏幕执行命令了,如果我们需要在不同的屏幕之间切换,可以通过 按Ctrl+A,然后再按Tab来切换。
开启分屏
按Ctrl+A,然后按Shift+S开启分屏;
切换分屏窗口
按Ctrl+A,然后再按Tab,切换到下面屏幕

当需要退出时,我们可以通过 exit 命令退出(在一个屏幕运行 exit 命令后,只是终端退出了,分屏的状态并没有退出,所以你需要通过前面的方法,切换到另一个屏幕上,再次运行 exit 退出)。
screen常见问题
开机自动加入screen中
将以下脚本内容添加到/root/.bashrc中;
# 检查是否存在detached(断开)或attached(连接)状态的screen会话
if session=$(screen -list | grep -i '\b(detached|attached)\b'); then
# 提取最后一个screen会话的ID并连接到其中
## -d:分离(detach)当前会话,将会话置于后台运行
## -R:连接到会话,若不存在则新建这个会话
## -U:启用 UTF-8 模式,允许在会话中使用 Unicode 字符
screen -dRU $(echo "$session" | tail -n1 | awk '{print $1}' | cut -d '.' -f2)
else
# 不存在任何screen会话,创建一个新的并连接到其中
screen -dRU terminal
fi

screen断开后screen -r不能进入断开的会话
https://blog.csdn.net/JoeBlackzqq/article/details/92564776
screen -D -r 会话id
本文详细介绍了Linux Screen命令的使用,包括安装、创建会话、恢复会话、分屏操作、屏幕共享及解决常见问题。Screen是一款终端复用工具,允许程序在后台不间断运行,方便用户在多个会话间切换。此外,还分享了如何开机自动连接screen会话以及处理断开后无法进入会话的解决方案。

1765

被折叠的 条评论
为什么被折叠?



