Ich verwende tmux auf meinem Server und musste kürzlich zu meinem Leidwesen feststellen, dass Strg-D tmux beendet und alle Sitzungsinformationen verloren gehen. Ich wollte die SSH-Sitzung einfach beenden, habe jedoch erst zu spät bemerkt, dass ich noch in tmux war.
Mir ist bewusst, dass ich in Zukunft vorsichtig sein sollte, wenn ich Strg-D verwende, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, zu verhindern, dass tmux beendet wird, wenn ich versehentlich Strg-D drücke. Eine Lösung wie eine Eingabeaufforderung, Bestätigung oder Trennung wäre in Ordnung.
Antwort1
Genauer gesagt Ctrldwird nicht beendet tmux
, sondern eine Shell. Wenn diese Shell im einzigen Bereich des letzten Fensters der tmux
Sitzung ausgeführt wird, wird die Sitzung beendet und der tmux
Client beendet.
Um Ctrlddas Verlassen der Shell zu verhindern, können Sie die IGNOREEOF
Shell-Variable oder die ignoreeof
Shell-Option festlegen. Fügen Sie eine der folgenden Optionen in Ihre .bashrc
Datei ein:
IGNOREEOF=10 # Shell only exists after the 10th consecutive Ctrl-d
set -o ignoreeof # Same as setting IGNOREEOF=10
Antwort2
IGNOREEOF
hat bei mir nicht funktioniert, also habe ich einfach Ctrl+ Dan detach
in .tmux.conf gebunden:
bind-key -n C-d detach
Das -n
bedeutet, dass keine vorherige Escape-Sequenz erforderlich ist, wie beim tmux-Präfix.
Antwort3
AußerdemchepnersAntwort: Sie können das Senden von EOF durch das Terminal vollständig stoppen, indem Sie Folgendes eof
einstellen :undef
stty
stty eof undef
Zurücksetzen mit:
stty eof '^d'