linux命令screen解决client_loop: send disconnect: Broken pipe

一、SSH连接服务器,client_loop: send disconnect: Broken pipe

最近需要在服务器上运行一个需要跑很久的脚本,但ssh连接的远程服务器的命令窗口经常会报:client_loop: send disconnect: Broken pipe,这个错误是ssh命令之后没有活动导致连接被关闭。断开ssh连接后运行的脚本就停止了。

二、screen命令

screen是一个终端多路复用器,它允许你在一个终端窗口中运行多个会话,并在需要时进行切换。每个虚拟终端都有一个回滚历史缓冲区和一个复制粘贴机制,允许用户在窗口之间移动文本区域。

当调用screen时,它会创建一个包含shell(或指定命令)的窗口,然后避开您的方式,以便您可以正常使用该程序。然后,您可以随时创建包含其他程序(包括更多shell)的新(全屏)窗口、关闭当前窗口、查看活动窗口列表、打开和关闭输出日志、在窗口之间复制文本、查看滚动历史记录、在窗口之间切换,等等。

使用screen,所有窗口都完全独立运行其程序。你可以在断开SSH连接后仍然保持后台运行。

三、安装screen

Debian/Ubuntu安装命令:

bash 复制代码
sudo apt-get update && sudo apt-get install screen

CentOS/RHEL安装命令:

bash 复制代码
sudo yum install screen

Fedora安装命令:

bash 复制代码
sudo dnf install screen

Arch Linux安装命令:

bash 复制代码
sudo pacman -S screen

四、创建一个新的screen窗口

不需要创建多个窗口时:

bash 复制代码
screen

需要创建多个窗口时,需要给每个窗口命名:

bash 复制代码
screen -S screen-name

-S后接新窗口的自己命名的窗口名称【screen-name】

如图所示:

五、退出窗口视图

使用ctrl+a,然后输入d,退出当前窗口,也可以使用screen -d退出当前窗口。

退出后窗口,在窗口运行的程序继续运行。

六、结束窗口

在窗口输入:exit+回车。

退出窗口后,杀死在窗口运行的程序。

七、查看窗口是否在后台运行

bash 复制代码
screen -list

效果如图所示:

bash 复制代码
screen -ls

效果如图所示:

八、重新进入后台运行的窗口视图

bash 复制代码
screen -r screen-name

-r后接自己命名的窗口名称【screen-name】

如图所示:

相关推荐
_下雨天.2 小时前
LVS负载均衡
服务器·负载均衡·lvs
小成202303202654 小时前
Linux高级02
linux·开发语言
mounter6254 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
++==4 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
特长腿特长5 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy5385 小时前
Linux环境变量
linux·运维·服务器
pluvium275 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
无级程序员5 小时前
centos7 安装 llvm-toolset-7-clang出错的问题解决
linux·centos
kebeiovo5 小时前
atomic原子操作实现无锁队列
服务器·c++
赛博云推-Twitter热门霸屏工具6 小时前
Twitter运营完整流程:从0到引流获客全流程拆解(2026)
运维·安全·自动化·媒体·twitter