Каждый раз, когда я подключаюсь к своей машине Ubuntu 17.10 с включенным byobu-enable, я получаю новый «сеанс» вместо того, чтобы повторно использовать мои существующие сеансы.
При подключении:
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), я попадаю в сеанс byobu с именем, например. _foo-20462
$ 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.
У меня была такая же проблема, и я нашел решение. Я создал проблему по этому поводу:
https://bugs.launchpad.net/byobu/+bug/1750430
Я надел детективную шляпу и сумел починить.
TL; DR - Либо вызов tmux
напрямую или отменить изменение в Byobu select-session.py
.
Запуск равнины tmux
команда присоединяется к первому сеансу, так что это, вероятно, самое простое "исправление" для этого (сеансы со странными названиями создаются только с tmux
бэкэнд, а не с screen
).
Однако вы можете исправить это и для Бёбу.
man 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())])
Итак, Бёбу намеренно создает сеанс с именем _%s-%i
, где %s
это имя сеанса и %i
это PID.
Если посмотреть на обвинение Git в строке, можно увидеть этот коммит:
https://github.com/dustinkirkland/byobu/commit/c0050ac51ee8accc3eb35862483bc40b19e3c269
Возврат строки устраняет проблему:
os.execvp("tmux", ["tmux", "-2", "attach", "-t", session_name])
... но, вероятно, также удаляет поддержку "групповых сеансов tmux", но я не совсем уверен, для чего они используются, и я могу жить без них.