GNU Screen

Linux.fista
Versio hetkellä 9. syyskuuta 2011 kello 14.12 – tehnyt Maakuth (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

GNU Screen on apuohjelma, jolla luodaan virtuaalisia terminaaleja toisten ohjelmien käyttöön. Virtuaaliterminaalissa toimivat ohjelmat eivät tarvitse fyysistä terminaali-ikkunaa toimiakseen, vaan ne voivat olla myös taustalla piilossa. Ohjelma itse ei edes tiedä, onko sillä yhteys fyysiseen terminaaliin vai ei.

Screeniä voidaan käyttää monenlaiseen virtuaalisten, ei-fyysisten terminaalien käsittelyyn. Yhdestä fyysisestä terminaali-ikkunasta voidaan hallita useita virtuaalisia terminaaleja ja niissä toimivia ohjelmia. Toisaalta myös yksi virtuaalinen terminaali voidaan ottaa samalla kertaa näkyviin useisiin fyysisiin terminaaleihin, ja näin esimerkiksi useat henkilöt voivat omilta koneiltaan käyttää tai katsoa samaa ohjelmaa yhtä aikaa. Yleinen virtuaaliterminaalin käyttökohde on, että etäyhteyden takana toimiva ohjelma jätetään päälle, vaikka yhteys katkaistaan. Aiemmin jätetty virtuaaliterminaali voidaan myöhemmin ottaa näkyviin ja jatkaa ohjelman käyttämistä.

Irssin ja SSH:n kanssa Screen muodostaa toimivan ja hyväksi havaitun IRC-läsnäolojärjestelyn: voit jättää IRC-yhteytesi auki Irssiin ja irkkailla tarpeen mukaan SSH:n avulla mistä vain Internet- ja ssh-yhteyden ääreen pääset. Yhdistä tähän vielä bitlbee, niin saat myös pikaviestiprotokollat, kuten MSN:n mukaan.

Screenin käyttö

Screenin käyttö aloitetaan komennolla

screen

tai

screen ohjelman_nimi

Ensimmäinen komento avaa virtuaalisen terminaalin ja käynnistää siihen käyttäjän oletuskomentotulkin; jälkimmäinen komento käynnistää terminaaliin ohjelman ohjelman_nimi. Mikäli haluat lopettaa Screenin, sulje vain Screenissä toimiva ohjelman ja Screenikin sulkeutuu samalla. Halutessasi voit jättää ohjelman taustalle käyntiin ja poistua itse tekemään jotain muuta. Se onnistuu painamalla Ctrl-a ja sen jälkeen d-kirjainta. Takaisin Screeniin ja sen ylläpitämiin virtuaalisiin terminaaleihin pääset komennolla

screen -r

Näppärä tapa screenin käyttöön on myös komento screen -DRR, joka sulkee ja kirjaa ulos muualla käynnissä olevat screen-istunnot ja liittää screenin käytössä olevaan päätteeseen. Jos screeniä ei ole, sellainen luodaan.

Screenissä voi luoda useita virtuaaliterminaaleja (ikkunoita). Näppäimillä Ctrl-a ja c avataan uusi terminaali ja käynnistetään käyttäjän oletuskomentotulkki. Terminaaleja voi avata useita, ja niiden välillä vaihdetaan painamalla Ctrl-a ja tämän jälkeen ikkunan numero, esimerkiksi Ctrl-a ja 2. Jokainen virtuaalinen terminaali toimii ihan normaalisti, vaikka se ei näkyisikään ruudulla. Apua Screenistä saat painamalla Ctrl-a ja sen jälkeen kysymysmerkkiä. Komento man screen kertoo lisää Screenin käytöstä ja komennoista.

Näppäinyhdistelmä Ctrl-a on käytössä useissa muissakin ohjelmissa. Esimerkiksi Emacs-tyylisessä komentorivimuokkauksessa se tarkoittaa ’siirrä kursori rivin alkuun’. Koska Ctrl-a on varattu Screenille, ei kyseinen näppäinyhdistelmä mene lainkaan Screenissä toimivalle ohjelmalle. Asia on korjattu siten, että Screeniin on varattu näppäinyhdistelmä Ctrl-a ja a, joka lähetetään ohjelmalle Ctrl-a:na. Screenin komentonäppäimen voi kuitenkin myös halutessaan vaihtaa joksikin muuksi lisäämällä ~/.screenrc-tiedostoon esimerkiksi rivin escape ^Zz.

Esimerkki ~/.screenrc-asetustiedostosta:

startup_message off
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
altscreen on
msgwait 2

Ruudun vieritys ei välttämättä toimi kunnolla käytettäessä Screeniä terminaaliemulaattoreiden (kuten Xterm) kanssa. Tämän voi korjata lisäämällä screenrc-tiedostoon rivin

termcapinfo xterm* ti@:te@

Screenin avaus skriptissä tai cronissa

Screeniä ei ole välttämättä kätevää avata oletusasetuksilla skriptistä tai cron-tehtävästä käsin, sillä kiinnittyminen ei ole välttämättä sitä mitä tavoitellaan. Mutta jos haluat esimerkiksi käynnistää irssi-keskusteluohjelman automaattisesti järjestelmän käynnistyksessä, sopiva cron-rivi olisi

 @reboot screen -d -m irssi

Tällöin screen aukeaa irroitetussa tilassa ja käynnistää irssin.


Aiheesta muualla