将 tmux 附加到现有会话,或创建新会话

将 tmux 附加到现有会话,或创建新会话

有一段时间,我screen -dURS曾经解决这个问题

目标是能够运行附加到具有特定名称的现有会话的命令,或创建具有特定名称的会话并在该新会话中运行命令。一个具体示例是加载服务器或守护程序(如果未运行),或者简单地附加到正在运行的会话。

我一直在阅读man tmux,目前最接近这个目标的是以下内容:

tmux new-session -AD -t TMUXSessionName 'echo Banana'

如果 session-name 已经存在,则 -A 标志使 new-session 的行为类似于 attachment-session ;在这种情况下,-D 的行为类似于 -d to attachment-session 。

如果指定了 -t,则新会话将与目标会话分组。这意味着它们共享同一组窗口 - 来自目标会话的所有窗口都链接到新会话,并且任何后续新窗口或关闭的窗口都将应用于两个会话。当前和前一个窗口以及任何会话选项都保持独立,并且任何一个会话都可以被终止而不会影响另一个会话。如果使用 -t,则提供 -n 或 shell 命令无效。

我误解了这些标志吗?我是否试图做一些本机不支持的事情tmux

注意:我发现tmux向技术不太精通的人解释起来更容易,而且由于它允许轻松共享会话的方式,我希望能够切换到tmuxscreen而这个问题是我唯一无法弄清楚的事情,可以让我完全完成切换。

答案1

诀窍是做出以下改变:

tmux new-session -AD -s TMUXSessionName 'echo Banana'

因此我们-s使用不是 -t

相关内容