Wie kann ich verhindern, dass tmux mit Strg+D beendet wird?

Wie kann ich verhindern, dass tmux mit Strg+D beendet wird?

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 tmuxSitzung ausgeführt wird, wird die Sitzung beendet und der tmuxClient beendet.

Um Ctrlddas Verlassen der Shell zu verhindern, können Sie die IGNOREEOFShell-Variable oder die ignoreeofShell-Option festlegen. Fügen Sie eine der folgenden Optionen in Ihre .bashrcDatei ein:

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

set -o ignoreeof  # Same as setting IGNOREEOF=10

Antwort2

IGNOREEOFhat bei mir nicht funktioniert, also habe ich einfach Ctrl+ Dan detachin .tmux.conf gebunden:

bind-key -n C-d detach

Das -nbedeutet, 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 eofeinstellen :undefstty

stty eof undef

Zurücksetzen mit:

stty eof '^d'

verwandte Informationen