Kategorie

Programme im Hintergrund laufen lassen mittels screen

Januar 3rd, 2012

screen ist ein nettes Tool, um mit mehreren Personen gemeinsam auf einem Bildschirm (engl. “screen”) zu arbeiten, genauer gesagt in einem Terminal (xterm oder Konsole spielt keine Rolle). Man kann so z.B. jemand beim Konfigurieren zuschauen (oder jemand zuschauen lassen, wie man etwas konfiguriert).

Auch sehr praktisch ist screen für unzuverlässige Verbindungen, z.B. per Interneteinwahl oder Wireless-LAN: bricht die Verbindung zum fern gewarteten Server ab, dann wählt man sich einfach wieder neu ein und schaltet sich erneut auf screen auf – die Bildschirminhalte sind dann genauso wie vor dem Abbruch!

screen ist ein sehr vielfälltiges Konsolen-Tool, welches sich für verschiedenste Aufgaben nutzen lässt.

Vorgehensweise:

  • Verbindung zum Zielrechner aufbauen, z.B. mit OpenSSH.
  • Starten tut man es einfach mit “screen”, ab dann arbeitet man auf einem von “screen” verwalteten screen
  • Eine Liste von laufenden screens erzeugt screen -ls
  • Multi-User-Mode: Wenn schon ein screen läuft, kann man sich einfach mit screen -r draufschalten.
    • Wenn man sich nicht sicher ist, ob schon ein anderer screen läuft: screen -R erstellt bei Bedarf einen neuen.
    • Wenn man fertig ist, einfach Verbindung abbrechen (ggf. vorher Strg-a d = detach).

Die wichtigsten Screen-Kommandos:

Kombination		Kommando		Beschreibung

ctrl-a ?		help			Zeigt den eingebauten Hilfebildschirm
ctrl-a 0		select			Schaltet zum Bildschirm 0
...			select			...
ctrl-a 9		select			Schaltet um auf Bildschirm 9
ctrl-a A		title			Erlaubt dem User, dem aktuellen Bildschirm einen Namen zu geben.
ctrl-a c		create			erzeugt einen neuen von Screen verwalteten Bildschirm
ctrl-a d		detach			Beendet den screen prozess, der die Session und das Terminal verbindet
ctrl-a n		next			Schaltet zum Bildschirm mit der nächst höheren Nummer
ctrl-a p		previous		Schaltet zum Bildschirm mit der nächst niedrigeren Nummer
ctrl-a x		lockscreen		Sperrt die Konsole, bis das Passwort des Benutzers eingegeben wurde
ctrl-a <Leertaste>	next			Alternative zu n; u.U. handlicher zu bedienen
ctrl-a ""		windowlist -b		Listet alle Fenster der aktuellen Session 
ctrl-d  		exit			Beendet die Session in Screen