有一段时间,我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
向技术不太精通的人解释起来更容易,而且由于它允许轻松共享会话的方式,我希望能够切换到tmux
,screen
而这个问题是我唯一无法弄清楚的事情,可以让我完全完成切换。
答案1
诀窍是做出以下改变:
tmux new-session -AD -s TMUXSessionName 'echo Banana'
因此我们-s
使用不是 -t
。