Linux Screen Debian
Mit Screen kann man Konsolen im Hintergrund laufen lassen. Wenn man die Verbindung zur Screen Konsole verliert, (ob nun beabsichtigt oder versehentlich) kann man sich wieder mit ihr verbinden. Das geht auch per SSH und auch von einem anderen Host aus. Die Programme die von der Screenkonsole aus gestartet wurden laufen dabei weiter. Deshalb bietet sich Screen für lang laufende Konsolen Programme an. Will man z.B. einen große Menge an Dateien kopieren, kann man das Script auf einer Screen Konsole starten und sich dann von dem Rechner abmelden. Das Script läuft dann im Hintergrund weiter und man kann sich später wieder dazu schalten.
Ein anderer Verwendungszweck ist wenn man ein Script per SSH laufen hat und den Rechner wechseln möchte. Schließt man die SSH Verbindung wird das Script beendet. Bei mir ist dies meist der Wechsel von meinem Arbeitsrechner nach Hause. Manche Scripte bieten auch keinen Demonmodus an und setzen für den Betrieb eine Konsole voraus. Diese kann man bequem per Screen laufen lassen. So kann man auch sehr einfach PHP Bots schreiben die über die PHP-CLI laufen. Bei Scripten bei denen eine kontrollierte Ausführung wichtig ist, lohnt es sich auch diese über Screen laufen zu lassen, da ein plötzlicher Abbruch der Internetleitung abgefangen werden kann. Es gibt natürlich noch sehr viel mehr Einsatzmöglichkeiten von Screen und wenn man weiß was es kann und wie es funktioniert wird man nicht mehr darauf verzichten wollen.
Kurz gesagt: Wenn es absehbar ist das ein Script länger laufen wird oder das es wichtig ist das es komplett durchläuft, sollte man dieses von einer Screen Konsole aus starten. Die Installation bei Debian Lenny ist wie immer sehr einfach.
$ apt-get install screen
Starten kann man eine neue Konsole dann mit:
$ screen
und wenn man sie beenden will macht man das ganz normal mit exit. Will man sie in den Hintergrund legen, geht dies mit STRG + A, D und das wieder aufnehmen von im Hintergrund liegenden Konsolen geht mit screen -r. Hier eine kurze Zusammenfassung von Befehlen im Zusammenhang mit Screen.
| Befehl | Beschreibung |
|---|---|
| screen | Startet eine Screenkonsole |
| screen -S Titel | Startet eine Screenkonsole mit dem Namen Titel |
| screen ping heise.de | Startet den Befehl ping auf einer neuen Screenkonsole |
| screen -r | Nimmt eine im Hintergrund liegende Screenkonsole wieder auf. Wenn es mehrere Screenkonsolen gibt, werden diese aufgelistet. |
| screen -r PID | Setzt eine Screenkonsole fort mit der angegebenen PID. |
| screen -r -S Titel | Setzt eine Screenkonsole fort mit dem Namen Titel |
| screen -d -m ping heise.de | Startet den Befehl und legt die Konsole sofort in den Hintergrund |
| screen -ls | Listet die Namen aller Screnkonsolen auf |
| STRG + A, D | Legt die Console in den Hintergrund |
Ein Kommentar
Andy
schrieb am 12.08.2010 um 14:38 Uhr
Cool echt gut gemacht hier, toller Bericht, danke dafür, habe sowas nämlich gebraucht.