Beenden Sie die äußere Tmux-Sitzung, wenn verschachtelte

Beenden Sie die äußere Tmux-Sitzung, wenn verschachtelte

Ich verwende SSH, um eine Verbindung zum Remote-Server herzustellen. Auf einem lokalen und einem Remote-Computer wird tmux beim Start von Bash automatisch gestartet.

Gibt es eine Möglichkeit, tmux auf dem lokalen Computer zu trennen, bevor die tmux-Sitzung auf dem Remotecomputer gestartet wird?

Aktualisieren

Nicht alle meiner Remote-Rechner starten tmux. Ich brauche den Trick nur für die, die gestartet sind, d. h. ich möchte die tmux-Sitzung auf dem lokalen Rechner speichern, wenn der Remote-Rechner keine startet.

Antwort1

Sie könnten ein Skript erstellen, das „detach -E“ zum Trennen und Ausführen von SSH verwendet, etwa so:

#!/bin/sh

if [ -n "$TMUX" ]; do
   tmux detach -E "ssh \"$@\""
else
   ssh "$@"
fi

Sie können es direkt ausführen oder einen Alias ​​für SSH verwenden.

Beachten Sie, dass dies nicht funktioniert, wenn Sie Flag-Argumente an SSH übergeben möchten.

verwandte Informationen