终端复用器tmux安装与使用

问题背景:

在使用DDP(Huggingface 的accelerate,本质还是DDP) 单机多卡训练时,本来想着用nohup后台运行,这样就不用担心ssh断开连接了,但是DDP使用nohup出现了问题,训练一半的时候会突然中断(收到了中断的信号)


google一下发现了类似的问题:

  1. DDP Error: torch.distributed.elastic.agent.server.api:Received 1 death signal, shutting down workers
  2. Torch.distributed.elastic is not stable
  3. nohup跑一段时间显示Message: ‘Received 1 death signal, shutting down workers’
  4. 多卡lora训练报错

目前的解决方法就是换成tmux或者screen.

指路👉 解决方法


tmux和screen都是终端复用器(terminal multiplexer),可以启动一系列的终端会话。解绑了会话和终端窗口,关闭终端窗口再打开,会话并不终止,而是继续运行在执行。

screen和tmux大体功能差不多,tmux对个人更友好一些,在分割窗口时候自动创建新会话、状态条显示、自动命名窗口以及其他无关紧要的功能。

session、window、pane的对应关系:

一个session可以创建多个window, 一个window又可以创建多个pane


1 安装

使用apt-get在Ubuntu系统中安装:

sudo apt-get install tmux

使用homebrew在Mac上安装

brew install tmux

2 基本使用

tmux默认的快捷键(前缀prefix)是Ctrl+b,用<prefix>表示

比如,快捷键<prefix>+k的意思是:先同时按下Ctrl和b,然后松开,然后再按k

常用的几条命令:

tmux # 直接启动tmux,并创建了一个空白的window
tmux ls # 查看已经存在的session
tmux new -s <session-name> # 新建session
Ctrl+b d # 临时退出当前的session
tmux a -t <session-name> # 进入已经存在的session, a是attach的缩写
tmux kill-session -t <session-name> # 杀死指定的session

3 功能大全

分类快捷键功能
基础?获取帮助信息
Session管理s列出所有会话
$重命名当前会话
d断开当前会话
Window管理c创建一个新窗口
,重命名当前窗口
w列出所有窗口
%水平分割窗口
"垂直分割窗口
n选择下一个窗口
p选择上一个窗口
0~9选择0~9对应的窗口
l在前后两个窗口间切换
w通过窗口列表切换窗口
f在所有窗口中查找指定文本
Pane管理%创建水平窗格
"创建一个垂直窗格
h将光标移入下左侧窗格
j将光标移入下下方窗格
l将光标移入下右侧窗格
k将光标移入下上方窗格
q显示窗格编号
o在窗格间切换
}与下一个窗格交换位置
{与上一个窗格交换位置
!在新窗口中显示当前窗格
x关闭当前窗格
SPC循环切换窗格布局
Alt + o逆时针旋转窗格面板
Ctrl + o顺时针旋转窗格面板
方向键移动光标选择面板
其它t在当前窗格显示时间
z最大化和最小化当前窗口

参考:
https://zhuanlan.zhihu.com/p/563921220
https://cloud.tencent.com/developer/article/1530522
https://qianxu.run/2021/03/28/tmux-vs-screen/
https://zhuanlan.zhihu.com/p/386085431
https://zhuanlan.zhihu.com/p/58668651

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值