Como posso impedir o tmux de sair com Ctrl-d?

29

Eu uso o tmux no meu servidor e recentemente descobri que ctrl-d sairá do tmux e perderá todas as informações da sessão, minha intenção era simplesmente terminar a sessão do ssh mas não percebi que ainda estava no tmux até tarde.

Estou ciente de que devo ter cuidado no futuro ao usar o ctrl-d, mas gostaria de saber se existe uma maneira de impedir o tmux de sair ao acertar o ctrl-d por acidente? Uma solução como prompt, confirmação ou desanexação seria satisfatória.

    
por Cas 26.09.2012 / 03:41

3 respostas

33

Para ser preciso, Ctrl d não sai do tmux , mas sim do shell. Se esse shell estiver sendo executado no único painel da última janela na sessão tmux , a sessão será encerrada e o tmux client será encerrado.

Para evitar que a Ctrl d saia do shell, você pode definir a variável IGNOREEOF shell ou definir a opção ignoreeof shell. Coloque um dos seguintes no seu arquivo .bashrc :

IGNOREEOF=10   # Shell only exists after the 10th consecutive Ctrl-d

set -o ignoreeof  # Same as setting IGNOREEOF=10
    
por 26.09.2012 / 05:00
9

IGNOREEOF não funcionou para mim, então limitei Ctrl + D para detach em .tmux.conf:

bind-key -n C-d detach

O -n significa que não é necessária uma sequência de escape prévia, como o prefixo tmux.

    
por 04.03.2016 / 23:07
5

Além da resposta chepner's , você pode impedir que o terminal envie o EOF completamente definindo eof para undef com stty :

stty eof undef

Redefinir com:

stty eof '^d'
    
por 26.09.2012 / 09:27

Tags