Solides SSH: Automatisch im Multiplexer
Bei wackeligen Internetverbindungen bleibt eine Ssh-sitzung zu Servern gern mal stehen und das dort gestartete Programm in der Shell hängt ebenso. Eventuell kommt ein Prozess dann dauerhaft nicht zum Abschluss. Dagegen ist ein Kraut gewachsen: Terminal-multiplexer wie Screen starten eine Shell, die auch eine Abmeldung überlebt. Nach einer erneuten Ssh-anmeldung können sich Anwender mit der im Hintergrund weiterlaufenden Shell verbinden und weiterarbeiten. Mit Screen funktioniert das beispielsweise mit dem Aufruf „screen mc“, der den Midnight Commander in eine Screen-session packt. Falls die Verbindung abbricht, kann der Befehl „screen -x“diese Session nach einer Neuanmeldung zurückholen. Deren Prozesse, zum Beispiel längere Dateioperationen, blieben währenddessen aktiv.
Nun gibt es das Problem, dass kein Admin stets weise vorauseinen
blickend daran denkt, seine Ssh-session auf dem Zielserver in eine Screen- oder Tmux-session zu verfrachten, bevor eine Verbindung zusammenbricht. Für besonders wichtige Linuxserver kann man daher in der Datei „~/.bashrc“eine Konfiguration hinterlegen, die eine eingehende Ssh-verbindung per Standard in Screen packt. Dazu dient diese Zeile: if [[ -z "$STY" && ( -n "$SSH_CLIENT" || -n "$SSH_TTY" ) ]]; then screen -RR; fi
Screen wird nur aktiv, wenn es sich um eine Ssh-verbindung handelt, und verbindet sich bei der nächsten Anmeldung auch gleich mit der noch laufenden Screen-session.
Auch Mehrfachanmeldungen sind möglich. Sie starten jeweils eine eigene Screen-session. Die Abmeldung mit Strg-d muss immer zweimal erfolgen, um zunächst Screen und dann SSH zu beenden. Des Weiteren begrüßt die Shell den Anwender mit der Meldung „New screen…“, die nach einem Druck auf die Leertaste oder nach einigen Sekunden verschwindet. -dw