Screen je vcelku malý nástroj, který vám umožní spravovat více různých sezení, které dál poběží i v okamžiku, kdy se od počítače odpojíte (ať už z vlastní vůle nebo z důvodu vyšší moci), ke kterým se budete moci později kdykoliv opět připojit a zkontrolovat jejich výsledek. Ale dost bylo teorie, pojďme se podívat jak na to.
Pro instalaci programu screen v Debianu a jemu podobných systémech bude stačit zadat něco jako aptitude install screen. V jiných distribucích tomu bude podobně.
Nové sezení spustíte jednoduše zadáním příkazu screen
. Objeví se vám krátké informační okno, které potvrďte klávesou [Enter] a dál už pracujete podobně jako v klasické konzoli. Jediný rozdíl spočívá v tom, že jakmile zadáte příkaz exit
, dojde k ukončení screenu. Doteď by to nebylo zas až tak zajímavé. Zkuste ovšem místo klasického příkazu exit
stisknout klávesovou zkratku [Ctrl + a] a pak ještě písmeno „d“. Objeví se vám krátká informace o tom, že jste se odpojili od obrazovky screen.
Příkaz pro odpojení od screenu funguje ať se děje cokoliv, může vám zrovna běžet kompilace, můžete zrovna kopírovat pomocí Midnight Commanderu nebo můžete mít spuštěné stahování wget či jinou libovolnou aplikaci. I když se odpojíte, program zůstává běžet a tak je to podobné, jako když se jenom podíváte na obrazovku jiného počítače. Jedna z mála věcí, která screen spolehlivě zabije je restartování počítače.
A jak že se znovu připojíte? Máte-li spuštěnou pouze jednu virtuální obrazovku screen, bude stačit zadat příkaz:
screen -r
Pokud máte spuštěno více obrazovek screen, objeví se vám jejich seznam, který vypadá např. takto:
There are several suitable screens on: 5488.pts-1.imhotep (3.11.2009 17:36:55) (Detached) 5471.pts-1.imhotep (3.11.2009 17:34:09) (Detached) Type "screen [-d] -r [pid.]tty.host" to resume one of them.
Seznam spuštěných screenů zobrazíte také zadáním příkazu: screen -ls
.
Do příslušného okna se pak dostanete zadáním:
screen -r 5488.pts-1.imhotep
Nebo zkráceně jenom:
screen -r 5488
Pokročilá práce se screen
Trochu sadomasochisticky může působit možnost spuštění další obrazovky v samotném screenu. A jak že se to provádí? Zadejte [Ctrl + a] následované písmenem „c“. Tím se vytvoří další obrazovka v aktuálním screenu. Mezi těmito obrazovkami se pak přepínáme pomocí tlačítek [Ctrl + a] „n“ pro další obrazovku a [Ctrl + a] + „p“ pro předchozí obrazovku. Jak je vidět, obrazovek je možno vytvořit hned víc a libovolně mezi nimi procházet. Jakmile stisknete oblíbené [Ctrl + a] „d“ pro odpojení od screenu, odpojíte se od všech. Později si je ovšem můžete znovu obvyklým způsobem spustit.
Kompletní seznam zkratek screenu si zobrazíte zadáním kombinace [Ctrl + a] následované symbolem „?“. Tím se vám zobrazí seznam všech možností.
Screen vám také umožní monitorovat ticho nebo naopak aktivitu v ostatních oknech. K tomu slouží [Ctrl + a] „m“ pro monitorování aktivity a [Ctrl + a] „_“ pro monitorování ticha. Jakmile se pak přepnete do dalšího okna screenu budete na aktivitu (nebo ticho) sledovaného okna upozorněni krátkou hláškou v levé dolní částí obrazovky. Na můj vkus je sice trochu krátká, ale rychlé přepnutí můžete provést zadáním [Ctrl + a] „'“ (jednoduchá uvozovka) následované zadáním čísla obrazovky nebo pomocí [Ctrl + a] „"“ (dvojité uvozovky) a vybráním okna ze seznamu.
Zkratkových kláves a možností screenu je ještě víc, ale proč hned vypisovat jejich seznam. Osobně jsem si dlouhou dobu vystačil s těmi opravdu základními (vytvoření nového screenu a opětovné připojení k němu). Teď, když jsem začetl do nápovědy, tak možná ještě časem začnu používat nová okna a přepínání mezi nimi. ;-)
Využití screenu při SSH (nebo jiném) připojení
Pokud screen nainstalujete na server, můžete se pomocí normálního SSH připojit, spustit screen a začít stahovat novou verzi Mandriva Linuxu či Ubuntu, nebo kompilovat nějaký komplexnejší program. Poté screen odpojíte a odpojíte se z SSH připojení. Stahování / kompilace bude pokračovat i když už přes SSH připojeni nebudete. Později se můžete znovu připojit a situaci zkontrolovat.