Byobu criando nova sessão em cada conexão

1

Toda vez que eu conecto a minha máquina Ubuntu 17.10 com o byobu-enable ativado, recebo uma nova "sessão" em vez de reutilizar minhas sessões existentes.

Ao conectar:

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)

Ao selecionar um, digamos (1), eu sou despejado em uma sessão de byobu, por exemplo, _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]

O curioso é que _foo-20462 parece ser uma réplica exata da sessão "foo". A única maneira que eu posso descobrir para matar estes é byobu kill-session -t _foo-20462 , mas eu acho que deve haver uma maneira de desabilitar esse comportamento, pois não era o mesmo em versões anteriores do Ubuntu.

    
por djmarcin 28.01.2018 / 11:50

1 resposta

0

Eu tive o mesmo problema e encontrei uma correção. Eu criei um problema sobre isso: link

Eu coloquei meu chapéu de detetive e consegui consertá-lo.

TL; DR - Chame tmux diretamente ou reverta uma alteração no select-session.py de Byobu.

A execução de um comando tmux simples é anexada à primeira sessão, portanto, essa é provavelmente a "correção" mais fácil para isso (as sessões nomeadas estranhamente são criadas apenas com o tmux backend, não com screen ). / p>

No entanto, você pode corrigir isso para o Byobu também.

man byobu revelou que a parte do Byobu responsável por selecionar a sessão é byobu-select-session .

which byobu-select-session direcionou-me para /usr/bin/byobu-select-session , que por sua vez chama /usr/libexec/byobu/include/select-session.py . Esses caminhos podem ser diferentes para você (estou no Fedora).

A linha em select-session.py que cria e nomeia a sessão é essa (na função attach_session() ):

os.execvp("tmux", ["tmux", "-2", "new-session", "-t", session_name, "-s", "_%s-%i" % (session_name, os.getpid())])

Portanto, o Byobu cria intencionalmente uma sessão chamada _%s-%i , em que %s é o nome da sessão e %i é o PID.

Olhando para a culpa do Git para a linha mostra este commit: link

A reversão da linha corrige o problema:

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

... mas provavelmente também remove o suporte para "sessões agrupadas do tmux", mas não estou totalmente certo para o que elas são usadas, e posso viver sem elas.

    
por 19.02.2018 / 21:24