通过 SSH 正确使用 Tmux 和 Irssi

通过 SSH 正确使用 Tmux 和 Irssi

我对 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

我认为您需要移动开头的“-t”部分,如下所示:

ssh -t myserv.com tmux attach

(灵感来自:

答案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 和前面的分号。第三个窗口只是“其他内容”拆分窗格的示例。

相关内容