Eu uso o tmux no meu servidor e recentemente descobri, às minhas custas, que ctrl-d sairá do tmux e perderá todas as informações da sessão. Minha intenção era simplesmente encerrar a sessão ssh, mas não percebi que ainda estava no tmux até tarde demais.
Estou ciente de que devo ter cuidado no futuro ao usar ctrl-d, mas me perguntei se existe uma maneira de evitar que o tmux saia ao pressionar ctrl-d por acidente. Uma solução como prompt, confirmação ou desconexão seria adequada.
Responder1
Para ser mais preciso, Ctrldnão exit tmux
, mas sim um shell. Se esse shell estiver sendo executado no único painel da última janela da tmux
sessão, a sessão será encerrada e o tmux
cliente será encerrado.
Para evitar Ctrldsair do shell, você pode definir a IGNOREEOF
variável do shell ou definir a ignoreeof
opção do shell. Coloque um dos seguintes em seu .bashrc
arquivo:
IGNOREEOF=10 # Shell only exists after the 10th consecutive Ctrl-d
set -o ignoreeof # Same as setting IGNOREEOF=10
Responder2
IGNOREEOF
não funcionou para mim, então apenas liguei Ctrl+ Dem detach
.tmux.conf:
bind-key -n C-d detach
Isso -n
significa que nenhuma sequência de escape anterior é necessária, como o prefixo tmux.
Responder3
Além do maisChepnerresposta, você pode impedir o terminal de enviar EOF totalmente definindo eof
como undef
with stty
:
stty eof undef
Redefinir com:
stty eof '^d'