使用多个 byobu 会话,同时忽略不相关的 tmux 会话

eli*_*ias 9 byobu tmux

所以,我可以访问一个共享的 shell 帐户,我和其他人在其中做一些工作。

有些人更喜欢使用 tmux,所以他们打开了他们的 tmux 会话,从~/.tmux.conf. 我更喜欢byobu在 tmux 周围使用包装器,因为它有更好的键绑定和其他东西。

问题是每当有其他人使用 tmux 会话时,每当我运行 byobu 时,它都会恢复他们的 tmux 会话,而不是为我创建一个新的 byobu 会话。

因此,我尝试运行byobu-tmux new-session,但随后它使用他们的配置(来自~/.tmux.conf)而不是 byobu启动了一个新的 tmux 会话。

我该如何解决这个问题?

Mic*_*ler 11

tmux 程序旨在作为管理一个或多个独立会话的单个服务器进程运行。配置文件在服务器进程启动时加载,并在创建新会话时应用于新会话。正在运行tmux new-session(或者,在这种情况下,byobu new-session)联系正在运行的服务器(如果有),并请求它创建一个新会话。服务器仅根据用户的 UID 为其套接字使用已知路径,这就是连接到正在运行的 tmux 服务器所需的全部内容。所以这就是为什么如果“正常” tmux 会话已经在运行,byobu 将使用该服务器附加到或创建一个新会话。

根据tmux 手册页,您可以简单地更改 tmux 使用的套接字来启动两个独立的 tmux 服务器,如果需要,每个服务器都有自己的配置集。您可以指定-L更改套接字的基本名称或-S指定一个完全不同的套接字文件路径的选项。默认的 tmux 套接字名为default.

所以,在调用byobu时使用这些tmux选项,用byobu启动一个独立的tmux服务器,你可以运行

byobu -L my-byobu new
Run Code Online (Sandbox Code Playgroud)

或者

byobu -L my-byobu attach
Run Code Online (Sandbox Code Playgroud)

其中名称my-byobu可以替换为您选择的任何名称。这将启动一个名为 的新 tmux 服务器my-byobu,它加载 tmux 的 byobu 配置而不是默认配置,并有效地为您的 byobu tmux 会话创建一个独立的命名空间。