一、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】
如图所示: