每次我连接到打开 byobu-enable 的 Ubuntu 17.10 机器时,我都会获得一个新的“会话”,而不是重复使用我现有的会话。
连接时:
Byobu sessions...
1. tmux: foo: 3 windows (created Sun Jan 28 10:23:59 2018) [204x53] (group foo)
2. tmux: ba: 1 windows (created Sun Jan 28 10:24:16 2018) [204x53]
3. Create a new Byobu session (tmux)
4. Run a shell without Byobu (/bin/bash)
一旦选择一个,比如 (1),我就会被转入一个名为 _foo-20462 的 byobu 会话
$ byobu list-session
_foo-20462: 4 windows (created Sun Jan 28 10:42:20 2018) [204x53] (group foo)
foo: 4 windows (created Sun Jan 28 10:23:59 2018) [204x53] (group foo)
bar: 1 windows (created Sun Jan 28 10:24:16 2018) [204x53]
奇怪的是 _foo-20462 似乎是“foo”会话的精确副本。我能想到的唯一杀死这些的方法是byobu kill-session -t _foo-20462
,但我认为一定有办法禁用此行为,因为在以前的 Ubuntu 版本中情况并非如此。
答案1
我遇到了同样的问题,并找到了解决办法。我创建了一个关于此问题的问题:
https://bugs.launchpad.net/byobu/+bug/1750430
我戴上侦探帽并设法修好了它。
TL;DR -tmux
直接调用或撤销 Byobu 中的更改select-session.py
。
运行一个简单的tmux
命令附加到第一个会话,所以这可能是最简单的“修复”方法(奇怪命名的会话只能用后端创建tmux
,而不是用screen
)。
不过,您也可以为 Byobu 修复此问题。
man byobu
透露,Byobu 中负责选择会话的部分是byobu-select-session
。
which byobu-select-session
将我引导至/usr/bin/byobu-select-session
,然后又调用/usr/libexec/byobu/include/select-session.py
。这些路径可能对您有所不同(我在 Fedora 上)。
select-session.py
创建并命名会话的行是这一行(在函数中attach_session()
):
os.execvp("tmux", ["tmux", "-2", "new-session", "-t", session_name, "-s", "_%s-%i" % (session_name, os.getpid())])
因此,Byobu 有意创建一个名为的会话_%s-%i
,其中%s
是会话名称,%i
是 PID。
查看 Git 对该行的指责,显示了这一提交:
https://github.com/dustinkirkland/byobu/commit/c0050ac51ee8accc3eb35862483bc40b19e3c269
恢复该行可以解决问题:
os.execvp("tmux", ["tmux", "-2", "attach", "-t", session_name])
...但可能还会删除对“tmux 分组会话”的支持,但我不完全确定它们的用途,而且没有它们我也可以活下去。