Hvis du har en kommando du gerne vil køre i baggrunden eller sikre at afviklingen af et program eller en serie kommandoer fortsætter selvom du mister din ssh forbindelse, kan du bruge screen
.
Du kan f.eks. være igang med fjern-opdatere en server, og da er det jo vigtigt at opdateringen ikke afbrydes hvis du mister forbindelsen.
Når du starter screen, får du ganske enkelt ny prompt:
1 2 |
$ screen -S server-update $ |
Du kan nu forlade den mens den kører videre i baggrunden, og vende tilbage til din normale prompt:
[CTRL]+[A] [D]
Dvs. du holde CTRL nede og trykker på A, slipper så begge taster og trykker på D.
D står for Detach.
Nu kan du lave en prompt mere, f.eks. til en top
kommando:
1 2 |
$ screen -S top $ top |
Hvis du for eksemplets skyld også forlader den med CTRL-A D
, kan du prøve at liste dine screen sessioner:
1 2 3 4 |
$ screen -ls There are screens on: 9460.top (Detached) 9039.server-update (Detached) |
Vi kan se at der er to kørende screen sessioner navngivet “top” og “server-update”. Som du har bemærket, navngiver jeg mine screens med -S
parameteren baseret på den handling der foregår i den enkelte session. Det gør det lettere at finde den jeg vil arbejde videre med. Lad os gendanne server-update sessionen:
1 |
$ screen -r 9039.server-update |
Parameteren -r
står for reattach.
For at lukke/fjerne en session du er færdig med, bruger du ganske enkelt exit:
1 |
$ exit |
Du kan også skifte mellem dine screens uden at forlade dem først:
[CTRL]+[A] [N]
– (next) Skifter til næste screen session[CTRL]+[A] [P]
– (previous) Skifter til foregående screen session
Læs mere om screen:
1 |
$ man screen |