Persistente Shell 1

Erstellt von René Keller am 01. August 2007

Ich arbeite häufig über SSH auf entfernten Servern. Leider gibt es dabei sehr häufig das Problem, dass der aktuell durchgeführte Vorgang unterbrochen wird - sei es, weil ich wegen eines Termins den Ort wechseln und somit die Putty-Verbindung schließen muss oder über GPRS im ICE arbeite und zwischen Köln und Frankfurt mal wieder die Funklöscher die Verbindung getrennt haben.

Aus der Problematik habe ich das Tool “screen” sehr schätzen gelernt, auf das mich Jörn gebracht hat. Screen öffnet eine (oder mehrere) Shell-Sessions, innerhalb derer mehrere Prozesse gestartet werden können. Bricht die Verbindung zusammen oder möchte man von einer anderen Konsole weiterarbeiten, kann man auf diese screen-Session zugreifen.

Beispiel:

Zunächst screen starten (wenn es nicht installiert ist, kann es über den FreeBSD-Port /usr/ports/sysutil/screen installiert werden)

# screen

Nachdem der Begrüßungsbildschirm mit ENTER oder Space zur Kenntnis genommen wurde, kann der gewünschte Befehl gestartet werden

# cd /usr/ports/java/jdk15 && make install clean

Nun läuft der Installationsprozess von Java in der Screen-Shell-Session. Möchte man nun auf der aktuellen Shell-Session einen anderen Job erledigen, kann man mit der Tastenkombination STRG + A D die Sitzung verlassen (der Java-Installationsprozess läuft weiter). Wenn alternativ die Verbindung zusammenbricht, ist ebenfalls der Installationsprozess nicht davon betroffen.

Wenn man nun von einer anderen Verbindung oder über ein anderes Terminal auf den Prozess zugreifen will, ruft man einfach wieder screen mit der Option “-r” auf, um den aktuellen screen-Prozess zu übernehmen. (Laufen mehrere dieser Prozesse, kann man sie mit “screen -r [PID]” ansteuern.)

# screen -r

Die Tastenkombinationen und weitere Informationen finden sich im sehr gut dokumentierten Manual (”man screen”).

Trackbacks

Klicke den Link an, um zur ursprünglichen Seite zurück zu kehren.

Kommentare

You must be logged in to leave a response.