Linux E X P R E S

Facebook

Screen: Správce sezení v terminálu

konzole.jpg

Možná to také znáte, připojíte se přes SSH na vzdálený počítač a během důležité aktualizace je připojení najednou ztraceno, nebo spustíte nějakou časově náročnější úlohu, např. kompilaci či skript, a protože vše trvá déle než jste původně předpokládali, přemýšlíte nad tím, zda spojení ukončit a příště se o to pokusit znovu, nebo ještě počkat a domů vyrazit o chvíli později. Tak přesně v těchto a mnoha dalších případech se vám hodí program screen.


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.

Spuštění screenuSpuštění screenu

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.

Více screenů najendouVíce screenů najendou

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.

Diskuze (18) Nahoru