一般使用服务器都是通过ssh远程访问,一旦代码跑起来不小心关闭终端则代码也会随之终止,原因就在于这种情况下,代码运行的会话和终端是绑定了,终端关闭则程序停止
使用tmux:terminal multiplexer(终端复用器)可以使终端和会话分离(detach),这样关闭终端时运行的程序不会停止
第一步:安装tmux
# Ubuntu 或 Debian
sudo apt-get install tmux
# CentOS 或 Fedora
sudo yum install tmux
# Mac
brew install tmux
第二步:创建一个tmux的dummy窗口
# 创建并命名一个tmux窗口
tmux new -s <name>
# 关闭tmux窗口
exit
第三步:分离会话
# 分离会话
tmux detach
通过detach操作将会话和终端分离,即使终端关闭执行的会话也不会停止
# 显示所有tmux窗口
tmux ls
第四步:重启终端、重连会话
# 重接会话 使用伪窗口名称
$ tmux attach -t <name>
重新连接会话之后就可以发现之前的会话完全恢复了
附:(一些其他操作)
# 彻底关闭tmux会话
tmux kill-session -t <name>
# 切换到另一个会话
tmux switch -t <session-name>
# 重命名会话
$ tmux rename-session -t <old-n