tmux使用-解决ssh断开程序中断的问题
在远程服务器跑程序时,有时候会因为网络不好而会话中断,这时对应的程序也会中断。这个问题可以被tmux很好的解决。在远程服务器上安装tmux,可以实现即使会话中断,也能保证程序在后台正常的运行。下面实现简单上手tmux.
1.安装
mac可以使用homebrew安装:
brew install tmux
linux安装
sudo apt-get install tmux
有conda的虚拟环境也可以使用
conda install tmux
2.新建和退出
输入命令:tmux
这时会进入新建的tmux会话窗口,一般一开始默认。(左下角)
如果要退出tmux会话窗口,输入命令:exit
.
建立特定名称的tTuX会话商口,输入命令:tmux new -s [新建会话名称]
3.查看、重命名、接入以及转换
在未进入tmux窗口的情况下,输入命令:tmux ls
,可以看到全部的tmux会话
输入命令:tmux rename-session -t [原会话名称] [新会话名称]
,可以实现对tmux会话的重命名
输入命令:tmux attach -t [会话名称]
,可以进入已有的tmux会话
进入了tmux会话窗口之后,输入命令:tmux switch -t 会话名称
,可以转入对应的tmux会话。
4.分离和终止
进入了tmux会话窗口之后,输入命令:tmux detach
,会退出当前会话,但当前会话会在后台存在,会话里运行的程序也会相应转到后
台,(直接点击右上角x号关闭窗口貌似也可以实现同样效果)
未进入tmux窗口的情况下,输入命令:tmux kill-session -t [会话名称]
,实现强制终止会话,杀死tmux会话进程。
快捷键:
tmux的常用命令:
创建新会话:tmux new-session -s sessionname
列出会话列表:tmux list-sessions
返回到原会话:tmux attach-session -t sessionname
离开会话:在tmux会话中按下Ctrl+b,然后松开,再按下d
【mac是Ctrl】
创建新窗口:在tmux会话中按下Ctrl+b,然后松开,再按下c
切换窗口:在tmux会话中按下CtrL+b,然后松开,再按下数字键,切换到对应编号的窗
水平分割窗口:在tmux会话中按下Ctrl+b,然后松开,再按下%
8.垂直分割窗口:在tmux会话中按下Ctrl+b,然后松开,再按下”
修改支持鼠标滚轮:Ctrl+b, 按: , 输入
set -g mouse on
切换面板:在tmux会话中按下Ctrl+b,然后松开,再按下方向键进行切换
关闭会话:exit
ctrl + b
来激活快捷键,开启后可以使用一些特定按键来执行操作。
ctrl + b 来激活快捷键,开启后可以使用一些特定按键来执行操作。 | ||
---|---|---|
分类 | 快捷键 | 功能 |
基础 | ? | 获取帮助信息 |
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 | 最大化和最小化当前窗口 |
【from GPT4】
另外:
使用
tmux
是个不错的选择!这里有一个简单的步骤指南,帮助你通过tmux
保持你的abc.ipynb
笔记本在服务器上继续运行:
连接到你的服务器:
使用 SSH 或其他远程连接工具登录到你的服务器。启动一个新的
tmux
会话:
在终端输入以下命令:
1 tmux new -s mysession这里
mysession
是你给会话命名的名称,你可以根据需要更改它。在
tmux
会话中启动 Jupyter Notebook:
确保你在启动 Jupyter Notebook 之前处于你笔记本文件的正确目录。然后运行:
1 jupyter notebook或者如果你需要通过特定端口访问,或者需要其他启动选项,可以添加相应的参数。
断开
tmux
会话:
当你启动了 Jupyter Notebook 并且确认一切正常运行后,你可以安全地断开tmux
会话而不会终止运行中的程序。按下Ctrl+B
然后立即按D
,这会将你从当前会话中分离出来并返回到普通的终端会话。重新连接到
tmux
会话:
如果你需要回到你的 Jupyter Notebook 或查看输出,可以随时重新连接到你的tmux
会话:
1 tmux attach -t mysession确保使用你之前命名的会话名称。
关闭
tmux
会话:
当你完成工作并不再需要保持笔记本运行时,可以关闭tmux
会话。首先,重新连接到会话,然后可以直接在tmux
里关闭 Jupyter Notebook,之后输入:
1 exit这会结束
tmux
会话并关闭所有相关的进程。这样,你就可以确保即使在远程连接断开后,你的笔记本仍能继续运行。希望这能帮到你!如果有其他问题或需要进一步的帮助,请随时告诉我。