我对 Tmux 还不太熟悉。我正在寻找一种方法,将本地的 Tmux 会话连接到远程会话,在我的服务器上使用 irssi 和其他东西运行。
如果我开始定期参加
tmux
然后使用 SSH 连接到我的服务器,每次我关闭笔记本电脑时,Tmux 都会丢失连接。
另一方面,我尝试连接到我的服务器,在那里启动一个 tmux 会话,然后使用以下命令附加本地会话
ssh myserv.com -t tmux a
但是,离开一段时间后,我无法重新连接......
我很确定有办法做到这一点,有什么线索吗?
答案1
正如 jmreicha 所说。
在远程服务器上启动 tmux,但不是使用 ssh 连接到该服务器......
使用 mosh。
您将永远不会再失去连接,即使您让计算机一次休眠数周,或者从家庭 wifi 切换到移动 wifi,然后再切换到免费公共 wifi。
谁需要脚本啊:)
答案2
您想在远程主机上启动 tmux 会话,并让它在后台运行。例如,tmux
在远程服务器上运行命令来启动它。然后从本地计算机通过 SSH 连接到服务器并运行tmux attach -t 0
以连接到 tmux 会话 0。
然后,当您完成后,只需使用 CTRL-A CTRL-D 分离会话并将其保留在那里,直到您需要再次连接。
合理?
答案3
答案4
这可能会让事情变得简单。首先,在 tmux 配置文件中写上如下代码可能会有所帮助:
new-session -s mysession "bash -i" #window 0, run bash
new-window -n IRC "irssi -n x_vi_r -c DALnet; bash -i" #irssi in window 1
new-window -n Diag "tail -f /var/log/maillog" # window 2, run maillog tail
split-window -h "top" # split 2nd window in half, run top
select-window -t 1 # select Window 1 (which has IRC in it)
attach-session -t mysession
然后您应该能够执行此操作,并且您的程序将会启动(如果它尚未运行)。ssh -t [email protected] "tmux attach -d"
在此示例中,我的 irssi 设置为连接到 Dalnet。如果我选择 /quit IRC,则 bash 终端会在该窗口中启动。如果您不喜欢这样,请删除 bash -i 和前面的分号。第三个窗口只是“其他内容”拆分窗格的示例。