Byobu создает новую сессию на каждом соединении

Каждый раз, когда я подключаюсь к своей машине с 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.

1 ответ

Решение

У меня была такая же проблема, и я нашел решение. Я создал вопрос об этом:
https://bugs.launchpad.net/byobu/+bug/1750430

Я надел свою детективную шляпу и сумел ее починить.


TL; DR - либо звонок tmux прямо или отменить изменение в Byobu's select-session.py,


Управляющий равниной tmux Команда присоединяется к первому сеансу, так что это, вероятно, самое простое "исправление" для этого (сеансы со странным именем создаются только с tmux бэкэнд, а не с screen).


Тем не менее, вы можете исправить это и для Byobu.

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())])

Итак, Byobu намеренно создает сеанс с именем _%s-%i, где %s это имя сеанса и %i это PID.

Изучение вины Git для строки показывает этот коммит:
https://github.com/dustinkirkland/byobu/commit/c0050ac51ee8accc3eb35862483bc40b19e3c269

Возврат строки устраняет проблему:

os.execvp("tmux", ["tmux", "-2", "attach", "-t", session_name])

... но, вероятно, также удаляет поддержку "групповых сессий tmux", но я не совсем уверен, для чего они используются, и я могу жить без них.

Другие вопросы по тегам