Como posso evitar a saída do tmux com Ctrl-d?

Como posso evitar a saída do tmux com Ctrl-d?

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 tmuxsessão, a sessão será encerrada e o tmuxcliente será encerrado.

Para evitar Ctrldsair do shell, você pode definir a IGNOREEOFvariável do shell ou definir a ignoreeofopção do shell. Coloque um dos seguintes em seu .bashrcarquivo:

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

set -o ignoreeof  # Same as setting IGNOREEOF=10

Responder2

IGNOREEOFnão funcionou para mim, então apenas liguei Ctrl+ Dem detach.tmux.conf:

bind-key -n C-d detach

Isso -nsignifica 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 eofcomo undefwith stty:

stty eof undef

Redefinir com:

stty eof '^d'

informação relacionada