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】

如图所示:

相关推荐
VekiSon26 分钟前
Linux内核驱动——设备树原理与应用
linux·c语言·arm开发·嵌入式硬件
Trouvaille ~31 分钟前
【Linux】进程间关系与守护进程详解:从进程组到作业控制到守护进程实现
linux·c++·操作系统·守护进程·作业·会话·进程组
晚霞的不甘35 分钟前
Flutter for OpenHarmony 打造沉浸式呼吸引导应用:用动画疗愈身心
服务器·网络·flutter·架构·区块链
生而为虫42 分钟前
[Windows] 【浏览器自动化精灵V1.0】用Excel表格控制浏览器的自动化
运维·自动化
Fcy6481 小时前
Linux下 进程(二)(进程状态、僵尸进程和孤儿进程)
linux·运维·服务器·僵尸进程·孤儿进程·进程状态
ID_180079054731 小时前
Python结合淘宝关键词API进行商品价格监控与预警
服务器·数据库·python
ZFB00011 小时前
【麒麟桌面系统】V10-SP1 2503 系统知识——救援模式显示异常
linux·kylin
落笔画忧愁e1 小时前
腾讯云轻量服务器 + OpenClaw 部署全攻略:从购买到飞书接入
服务器·飞书·腾讯云
第七序章1 小时前
【Linux学习笔记】初识Linux —— 理解gcc编译器
linux·运维·服务器·开发语言·人工智能·笔记·学习
AI科技星1 小时前
从ZUFT光速螺旋运动求导推出自然常数e
服务器·人工智能·线性代数·算法·矩阵