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】

如图所示:

相关推荐
A小辣椒21 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式