Linuks „screen“ komanda predstavlja jednostavan i koristan alat koji značajno olakšava život Linuks administratora. Screen komanda omogućuje da u Linuks konzolnom režimu, u jednom terminal prozoru, možemo da otvorimo i eksploatišemo više nezavisnih shell terminala, pa se može reći da na taj način screen obavlja ulogu konzolnog displej menadžera.

Druga funkcionalnost koju ova komanda obezbeđuje jeste mogućnost razdvajanja (detach) i ponovnog priključenja (attach) terminal sesija. U nastavku teksta navešćemo dva scenarija potencijalne upotrebe screen komande, radi boljeg razumevanja funkcionlnosti koje ova komanda obezbeđuje.

Screen komanda uspešno izlazi u susret zahtevima scenarija u kojem je, na primer, neophodno udaljeno pokrenuti izvršavanje neke interaktivne skripte koja se izvršava nekoliko časova i treba pratiti tok njenog izvršavanja. Recimo da je pri tome u monitoring proces uključeno više administratora, koji se razmenju po određenoj satnici i koji prilaze sa više udaljenih lokacija.

Bekap procedure, sistemska ažuriranja, kompajliranja izvornih (source) paketa, itd. samo su neki od primera sistemski zahtevnih procesa koji se izvršavaju nekoliko časova. Drugi često korišćeni scenario u praksi jeste kada Linuks administrator sa određene lokacije udaljeno (koristeći SSH pristup) radi na nekoliko Linuks servera. Ukoliko se pri tome koristi forvardovanje portova i neki drugi složeniji mehanizmi koje SSH servis podržava, biće otvorena gomila prozora sa SSH klijentskim konekcijama, a kao dodatna komplikacija, za otvaranje svake nove klijentske konekcije biće neophodno da ponovo unesemo odgovarajuće SSH kredencijale.

Koji SSH prozor odgovara kojoj konekciji, posle nekog vremena postaje naporno pamtiti i snalaženje se u takvoj situaciji nije jednostavno. Screen komanda kao svojevrstan terminal displej menadžer i u ovom scenariju omogućuje rad sa svim SSH konekcijama iz jednog terminal prozora.

scrn1

Funkcionalnosti screen komande koje smo predstavili mogu i da ne zvuče previše impresivno, ukoliko se ne uzme u obzir arhitektura Linuks operativnog sistema, odnosno načina na koji su na sistemskom niovu oranizovani procesi, thredovi, kao i i način na koji oni međusobno komuniciraju.

Bez suvišnog detaljisanja, recimo da ako na Linuks sistemu otvorimo poseban terminal i iz datog terminala startujemo nekolicinu komandi, svaka od datih komandi predstavljaće zaseban proces koji će se izvršavati pod patronatom roditeljskog terminal procesa. Ukoliko zatvorimo terminal biće zaustavljen i svaki proces startovan iz datog terminala, a zaustavljanje procesa na Linuks sistemu se inicira slanjem odgovarajućeg signala datom procesu. Praktično, to znači da ako smo na primer započeli proces preuzimanje nekog sadržaja komandom „wget“ iz terminala, pa zatim taj terminal zatvorimo, i proces preuzimanja se automatski prekida.

Korišćenjem screen komande potrebno je samo uraditi „detach“ aktivne sesije i u ovom scenariju proces preuzimanja nastavio bi da se izvršava pozadinski, uz napomenu da u svako doba možemo uraditi „attach“ iste sesije i pristupiti joj direktno sa bilo koje lokacije.

scrn2

Screen komanda dolazi standardno uz svaku Linuks distribuciju i ne zahteva omogućavanje eksternih repozitorija softvera. Ukoliko nije podrazumevano instalirana, na CentOS sistemima možete je instalirati korišćenjem yum paket menadžera (yum install screen), odnosno apt-get paket menadžera na Debian baziranim sistemima (apt-get install screen).

Nećemo se detaljno baviti sinstakom same komande (to i nije ideja ovog teksta), ali ćemo reći da je prilično jednostavna za korišćenje. Linuks screen komanda ima još mnogo naprednih opcija.

Ovde smo generalno govorili o bazičnim funkcionalnostima Linuks Screen komande i nismo se doticali mnogobrojnih naprednih opcija.

itmogul-logoTekst je preuzet sa ugašenog bloga IT modul i originalni autor ovog teksta je Vladimir Blagojević. Kompjuteraš IT blog objavljuje tekstove sa tog bloga kako riznica znanja sa te lokacije ne bi otišla u zaborav.