[Eisfair] Arbeiten über eine ssh-Verbindung

Christian Richter christian at richter-ch.de
Do Jan 22 14:53:01 CET 2026


Hallo Marcus,

Am 22.01.26 um 14:21 schrieb Marcus Röckrath:
> 
> Hast du aktuell als Extraskript oder direkt in /etc/profile.d eingebaut?
> 

Das ist direkt in /etc/profile.d/zzzz_checkconnection.sh

#!/bin/bash
if [ "${SSH_CONNECTION}" != "" ] && [ -t 0 ] && [ -z "$TMUX" ]
then
     if [ -n "$SSH_CONNECTION" ] && [ -z "$TMUX" ]
     then
         if tmux list-sessions >/dev/null 2>&1
         then
             count=$(tmux list-sessions | wc -l)
             echo
             echo "tmux Sessions ($count):"
             tmux list-sessions -F "#S" | nl -w2 -s': '
             base_prompt="[Enter=NEW]"
             if [ "$count" -ge "2" ]; then
                 prompt="$base_prompt q=Shell 1-$count: "
             else
                 prompt="$base_prompt q=Shell $count: "
             fi
         else
             prompt="[Enter=NEW tmux] q=Shell: "
         fi

         echo "10s timeout → Shell"
         echo -n "$prompt"

         # Einfacher read mit Timeout
         timeout=10
         input=""
         if IFS= read -t "$timeout" -r input; then
             # Eingabe: filtern
             input=$(echo "$input" | sed 's/[^0-9qQ]//g' | tr 
'[:upper:]' '[:lower:]')
         else
             # Timeout: Shell
             input="q"
         fi

         echo  # Neue Zeile

         case "$input" in
             q)
                 echo "Shell." >/dev/null
             ;;

             *[0-9]*)
                 num=$(echo "$input" | grep -o '[0-9]' | head -1)
                 [ "$num" ] || num=1
                 session=$(tmux list-sessions -F "#S" | sed -n "${num}p")
                 if [ -n "$session" ]; then
                     exec tmux attach -t "$session"
                 else
                     exec tmux new-session
                 fi
             ;;
             *)
                 exec tmux new-session
             ;;
         esac
     fi
fi



Für mich ist das OK, dass ich aus der ssh-session fliege, wenn ich die 
(einzige) tmux-session verlasse. Wen das stört, kann ja das Script wie 
in meinem ersten Ansatz auslagern und in /etc/profile.d/ einfach die 
Datei aufrufen lassen.


> Wenn die Diskussion hier zu einem vorläufigen Ende kommt, mache ich mal ein
> HowTo darus, denn sonst gerät es wieder aus dem Blick und ist dann nur
> schwer wieder auffindbar.
> 

Ehrlich gesagt habe ich es noch nie gebraucht eine Session wieder 
aufzunehmen - also eine reine ssh-Verbindung ohne tmux etc. reicht mir 
eigentlich völlig aus, ich fand Deinen Hinweis und die Idee einfach nur 
gut und habe das dann weitergesponnen. Unter anderem ist Olaf ja auch 
auf den Zug aufgesprungen, und hat entscheidend beigetragen. Also 
scheint die Idee ja wirklich nicht ganz blöd zu sein. :-)

Wenn daraus ein HowTo wird finde ich das richtig klasse. Evtl. kann es 
der ein oder andere ja brauchen ;-))

Gruß
Christian


Mehr Informationen über die Mailingliste Eisfair