使用 tmux 分离终端和会话
我们可以使用tmux(terminal multiplexer)(终端复用器)来使终端和会话分离(detach),这样关闭终端时运行的程序不会停止。
views
| comments
1. 前言#
在使用ssh远程连接服务器时,当我们关闭终端或者断开连接,在终端运行的代码也随之停止。特别是使用服务器训练模型时,我们不可能一直保持终端连接,这时我们可以使用tmux(terminal multiplexer)(终端复用器)来使终端和会话分离(detach),这样关闭终端时运行的程序不会停止。这里只对会话分离功能进行记录,因为窗格操作目前基本不会使用。
2. 基础命令#
2.1 安装#
# Ubuntu 或 Debian
sudo apt-get install tmux
# CentOS 或 Fedora
sudo yum install tmux
# Mac
brew install tmux
bash2.2 启动和退出#
-
启动tmux窗口
bashtmux
也可以在启动时指定session的名字,这样在解绑后可以快速重新进入该session:
bashtmux new -s your-session-name
-
退出tmux窗口
bashexit
2.3 分离会话#
tmux detach
bash执行该命令后,就会退出当前 tmux 窗口,但是会话和里面的进程仍然在后台运行。
2.4 查找和接入会话#
-
查看当前所有的 tmux 会话
bashtmux ls
-
重新接入某个已存在的会话
bash# 使用会话编号 tmux attach -t 0 # 使用会话名称 tmux attach -t <session-name>
2.5 杀死会话#
# 使用会话编号
tmux kill-session -t 0
# 使用会话名称
tmux kill-session -t <session-name>
bash使用该命令后,会话和里面的进程会被杀死
2.6 切换会话#
# 使用会话编号
tmux switch -t 0
# 使用会话名称
tmux switch -t <session-name>
bash这个命令可以从某个会话直接切换到另一个会话
2.7 重命名会话#
tmux rename-session -t 0 <new-name>
bash