Geef screen sessies een naam

Standaard krijgen screen sessies leuke namen zoals bijvoorbeeld 8965.pts-0.atom-server.
Daar heb je niet veel aan als er meerdere screen sessies tegelijk draaien. Het kan gelukkiger beter.
Een screen sessie kun je een naam geven met de -S optie.


cellie@atom-server:~$ screen -S hellanzb

Als je deze sessie verlaat en het screen -ls commando uitvoert zie je:


cellie@atom-server:~$ screen -ls
There is a screen on:
 8941.hellanzb    (Detached)
1 Socket in /var/run/screen/S-cellie.

Gevonden op de screen manpage

sessie beheer met screen

Je kent het waarschijnlijk wel, je hebt een half uur geleden op de server via ssh een grote compile gestart en opeens verschijnt de melding ‘Connection to 192.168.2.2 closed‘.
De verbinding is verbroken. Er is net een half uur werk verprutst.
Dit had je kunnen voorkomen door screen te gebruiken.

Screen is te gebruiken als een sessie manager en terminal multiplexer. Als je een server alleen via ssh kunt aansturen ben je vaak aan het schipperen met een flink aantal ssh sessies naar de server. Met screen kun je al die sessies in een enkele ssh verbinding stoppen. Je kunt zelfs de verbinding verbreken en de screen sessie verder laten draaien. Als je dan op een later tijdstip weer met de server verbind kun je direct verder werken.
Bijvoorbeeld thuis een sessie starten, die verlaten en op een andere locatie weer openen en verder werken.

Screen start je op door simpelweg screen in te typen.

Als je screen opstart krijg je een copyright melding. Met ‘SPACE’ of ‘ENTER’ kun je die overslaan. Daarna kom je zo op het eerste gezicht in een normale shell terecht.
Onthoud: je geeft opdrachten aan screen door middel van de toetscombinatie ‘CTRL+a’.

Start nu top in de screen sessie.
Terwijl top draait typ je ‘CTRL+a’ en daarna ‘c’. (create)
Er word nu een nieuw venster in de terminal gemaakt en screen opent dat nieuwe venster.
Om naar het vorige venster waarin top draait te schakelen typ je ‘CTRL+a’ en daarna ‘p’. (previous)
Je bent nu terug in het venster waarin top draait.
Met ‘CTRL+a’ en daarna ‘d’ (detach) verlaat je screen.
Let op, de sessie draait nu nog.

Als je wilt zien welke sessies er draaien start je screen met de -ls optie:

screen -ls
There is a screen on:
384.pts-0.atom-server    (Detached)
1 Socket in /var/run/screen/S-cellie.

Je ziet dan dat er nog een sessie is met id 384.pts-0.atom-server wat de sessie is die we net hebben verlaten.
Ga verder met die sessie met de -r optie: (re-attach)

screen -r 384.pts-0.atom-server

En je bent weer terug in de sessie. Dat is eigenlijk de hele truuk van screen. Je kunt individuele vensters binnen een sessie sluiten door ‘CTRL+a’ en daarna ‘k’ (kill) te typen.
Of je gebruikt net als in een normale shell de opdracht exit. Als je in het laatste venster van een sessie bent en je sluit dat af dan word screen afgesloten. Heb je bovenstaande aanwijzingen opgevolgd dan kun je nu door twee keer exit te typen de screen sessie helemaal beëindigen.

Hier nog een klein overzicht van de basis functies.
Vergeet niet eerst ‘CTRL+a’ te typen!

  • c – maak nieuw venster en open het
  • p – vorige venster
  • n – volgende venster
  • d – verlaat screen
  • k – sluit venster
  • ? – help

Natuurlijk is er veel meer info te vinden over screen op één van de talloze man pages.