原因

我使用Next Terminal管理VPS,Next Terminal可以通过浏览器访问VPS,但也会因网络问题导致链接断开,如何在断开后快速恢复成了问题,对比各种方案Screen符合我的要求,以下具体做法:

安装及配置

Debian可以通过命令sudo apt install screen安装Screen,安装完后如何实现登录VPS创建并恢复Screen会话就成了问题,这是我的做法,仅供参考。
在用户根目录下执行以下命令,创建脚本,命令如下:

cat > ~/.web-ssh.sh <<EOF
#!/bin/bash
# 检查是否有现有的 screen 会话
if screen -ls | grep -q "There is a screen on"; then
  # 如果有,切换到该会话
  # screen -r
  screen -xRR
else
  # 如果没有,创建名为next-terminal新会话并进入
  screen -S next-terminal
fi
EOF

执行chmod +x ~/.web-ssh.sh,赋予执行权限,接着修改 ~/.bashrc文件,追加

cat >> ~/.bashrc <<EOF
if [ -f ~/.web-ssh.sh ]; then
  source ~/.web-ssh.sh
fi
EOF

保存,这样每次SSH进入VPS都会进入之前创建的Screen会话。

Screen增强

Screen会话默认无法通过鼠标滚轮上下翻页,可以在用户根目录执行echo 'termcapinfo xterm* ti@:te@' >> ~/.screenrc,重启VPS,再次进入后即可上下翻页。

参考

让 Linux screen 提供的 “终端” 支持鼠标滚动