Screen команда – управљање Линукс терминалима

Линукс „screen“ команда представља једноставан и користан алат који значајно олакшава живот Линукс администратора. Screen команда омогућује да у Линукс конзолном режиму, у једном терминал прозору, можемо да отворимо и експлоатишемо више независних shell терминала, па се може рећи да на тај начин screen обавља улогу конзолног дисплеј менаџера.

Друга функционалност коју ова команда обезбеђује јесте могућност раздвајања (detach) и поновног прикључења (attach) терминал сесија. У наставку текста навешћемо два сценарија потенцијалне употребе screen команде, ради бољег разумевања функционлности које ова команда обезбеђује.

Screen команда успешно излази у сусрет захтевима сценарија у којем је, на пример, неопходно удаљено покренути извршавање неке интерактивне скрипте која се извршава неколико часова и треба пратити ток њеног извршавања. Рецимо да је при томе у мониторинг процес укључено више администратора, који се размењу по одређеној сатници и који прилазе са више удаљених локација.

Бекап процедуре, системска ажурирања, компајлирања изворних (source) пакета, итд. само су неки од примера системски захтевних процеса који се извршавају неколико часова. Други често коришћени сценарио у пракси јесте када Линукс администратор са одређене локације удаљено (користећи SSH приступ) ради на неколико Линукс сервера. Уколико се при томе користи форвардовање портова и неки други сложенији механизми које SSH сервис подржава, биће отворена гомила прозора са SSH клијентским конекцијама, а као додатна компликација, за отварање сваке нове клијентске конекције биће неопходно да поново унесемо одговарајуће SSH креденцијале.

Који SSH прозор одговара којој конекцији, после неког времена постаје напорно памтити и сналажење се у таквој ситуацији није једноставно. Screen команда као својеврстан терминал дисплеј менаџер и у овом сценарију омогућује рад са свим SSH конекцијама из једног терминал прозора.

scrn1

Функционалности screen команде које смо представили могу и да не звуче превише импресивно, уколико се не узме у обзир архитектура Линукс оперативног система, односно начина на који су на системском ниову оранизовани процеси, тхредови, као и и начин на који они међусобно комуницирају.

Без сувишног детаљисања, рецимо да ако на Линукс систему отворимо посебан терминал и из датог терминала стартујемо неколицину команди, свака од датих команди представљаће засебан процес који ће се извршавати под патронатом родитељског терминал процеса. Уколико затворимо терминал биће заустављен и сваки процес стартован из датог терминала, а заустављање процеса на Линукс систему се иницира слањем одговарајућег сигнала датом процесу. Практично, то значи да ако смо на пример започели процес преузимање неког садржаја командом „wget“ из терминала, па затим тај терминал затворимо, и процес преузимања се аутоматски прекида.

Коришћењем screen команде потребно је само урадити „detach“ активне сесије и у овом сценарију процес преузимања наставио би да се извршава позадински, уз напомену да у свако доба можемо урадити „attach“ исте сесије и приступити јој директно са било које локације.

scrn2

Screen команда долази стандардно уз сваку Линукс дистрибуцију и не захтева омогућавање екстерних репозиторија софтвера. Уколико није подразумевано инсталирана, на ЦентОС системима можете је инсталирати коришћењем yum пакет менаџера (yum install screen), односно apt-get пакет менаџера на Дебиан базираним системима (apt-get install screen).

Нећемо се детаљно бавити синстаком саме команде (то и није идеја овог текста), али ћемо рећи да је прилично једноставна за коришћење. Линукс screen команда има још много напредних опција.

Овде смо генерално говорили о базичним функционалностима Линукс Screen команде и нисмо се дотицали многобројних напредних опција.

itmogul-logoТекст је преузет са угашеног блога ИТ модул и оригинални аутор овог текста је Владимир Благојевић. Компјутераш ИТ блог објављује текстове са тог блога како ризница знања са те локације не би отишла у заборав.