Heute ist mir seit längerem mal wieder bewusst geworden, was ich an dem kleinen mächtigen Tool GNU screen habe. Ich war gerade dabei mysql-server und apach2 zu installieren.
# apt-get install mysql-server apache2
Nach dem bestätigen der Abhängigkeiten, download der Pakete und dem losflitzen von dpkg … Zwangstrennung … Irgs…
SSH disconect broken pipe …
Als ich screen noch nicht kannte, bestand mein weiterer Ablauf aus Kaffee holen, Kippe, beruhigen und dann ein dpkg -a … Nachdem man die Lock Datei getoucht oder bearbeitet hat, debconf überreden konnte aufzuhören mit was auch immer es/er gerade macht usw.
Dank screen hat sich der Ablauf nach so einer „broken Pipe“ etwas geändert. Kaffee, Kekse und dann entspannt via SSH wieder auf den Server und seine Session zurück holen.
Eine kurze Einleitung in screen bekommt man wenn Man(n)/Frau weiter ließt :)
Vor der „kurzen“ Einleitung meine Quellen.
Seit 2004? gibt es ein schönes englischsprachiges GNU Screen: an introduction and beginner’s tutorial. Weiterhin ist die Screen FAQ recht gut.
Was aber genau ist screen und was macht es?
In einer Schulung zur LPIC1 vor ein paar Jahren hat ein Teilnehmer (der mit *NIX 0 am Hut hatte) meine Ausführung zum Thema screen folgendermaßen zusammengefasst:
screen ist also ein oder mehrere virtuelle Terminals zwischen denen ich auf einem oder mehreren physischen Terminals (tty) umschalten kann und die selbst nach dem abmelden von einem Terminal (tty) im Hintergrund weiter laufen. D war detach und R war reattach .!?
Irgend wie ist diese Aussage bei mir hängen geblieben. Auch wenn das „terminal multiplexer“ vermutlich mit virtuellem Terminal verwechselt wurde :)
Screen hat also den Riesen Vorteil, dass nach einer Zwangstrennung oder einer Trennung von einem Terminal im allgemeinen, ich meine Session wieder holen kann. Und alle Programme oder Scripte laufen noch.
Ich baue folgende Liste nach dem Schema „Befehl | was macht er“ auf. Das kürzel C-a steht für CTRL bzw. STRG und taste a gleichzeitig. Die von mir am häufigsten benutzten screen Befehle sind folgende:
- screen | startet das „virtuelle Terminal“
- C-a d | Virtuelles Terminal verlassen (NICHT beenden!)
- screen -r | Virtuelles Terminal betreten
- C-a k | Virtuelles Terminal beenden
Unfallfrei testen kann man das ganze zB. mit top.
- Startet ein Terminal
- Führt den Befehl screen aus
- startet das Programm top
- verlasst screen mit C-a d (STRG+a d)
- schließt das Terminal
- öffnet ein neues Terminal
- Führt den Befehl screen -r aus
- top sollte immer noch am werkeln sein
- STRG+c um top zu beenden
- C-a k um screen zu beenden
Wie oben erwähnt sollte es nur eine kurze Einführung in screen werden. Screen selbst ist sehr viel mächtiger. Es sei jedem der screen mal testen möchte screen –help und die Manpage (man screen) ans Herz gelegt. Ich selbst würde screen in die Kategorie „vorbeugen ist besser als heilen“ stecken.
Pingback: Debian dist-upgrade MySQL nicht mehr erreichbar | Linux Welten