Screen-ohjelma
Screen on ohjelma, jolla luodaan virtuaalisia terminaaleja toisten ohjelmien käyttöön. Sen avulla voit jättää esimerkiksi Irssin shelliin "taustalle" päälle, vaikka sulkisit SSH-yhteytesi. Tässä ohjeessa kerrotaan ohjelman perustoiminnot ja kuinka Irssin saa käynnistettyä screeniin. Lopussa on kerrottu vinkkejä yleisimpien virhetilanteiden varalle.
Komentoja kirjoitettaessa on oltava tarkka, sillä voit vahingossa käynnistää useamman screenin. Älä käynnistä screeniä toisen screenin sisään, sillä saat ajaa vain yhtä taustaprosessia. Lue siis ohje huolella läpi ennen kuin kokeilet komentoja. Kaikki screenit saa suljettua komennolla killall screen, jonka jälkeen on aloitettava alusta.
Aloitus
Ensimmäiseksi sinun on yhdistettävä palvelimelle ja kirjauduttava sisään kuten erillisessä ohjeessa on neuvottu. Kun olet kirjautunut shelliin, voit tarkistaa ps ax -komennolla käynnissä olevat prosessisi. Listauksessa pitäisi näkyä tällaista:
tunnus@noppa ~ $ ps ax PID TTY STAT TIME COMMAND 7007 ? S 0:00 sshd: tunnus@pts/7 7010 pts/7 Ss 0:00 -bash 7108 pts/7 R+ 0:00 ps ax tunnus@noppa ~ $
Listauksessa ei siis pitäisi näkyä yhtään screen-nimistä prosessia. Mikäli näkyy, olet jo aikaisemmin käynnistänyt screenin ja siihen mahdollisesti jonkin ohjelman. Tämä ohje aloittaa aivan alusta, joten on suositeltavaa sulkea aiemmat screenit.
Käynnistys ja sulkeminen
Pelkän screenin saa käynnistettyä yksinkertaisesti komennolla screen. Sen käynnistyminen ei näy ulospäin juuri mitenkään, vaan näyttö vain tyhjenee ja edessäsi on samanlainen komentokehote kuin "normaalissakin" terminaalissa. Käynnistyksen jälkeen voit ajaa siinä mitä tahansa komentoja ja ohjelmia. Sulkeminen tapahtuu komennolla exit.
tunnus@noppa ~ $ screen
Vaihtoehtoisesti tietyn ohjelman saa käynnistettyä screeniin suoraan komennolla screen <ohjelma>. Tällä tavalla ensin käynnistyy screen-istunto ja heti sen jälkeen haluamasi ohjelma. Tällä kyseisellä komennolla käynnistetyn screenin saa suljettua yksinkertaisesti sulkemalla siinä käynnissä olevan ohjelman.
Nyt voit käynnistää screenin "sisään" Irssin, jotta voit jättää sen shelliin päälle, kun kirjaudut ulos. Kirjoita siis komento screen irssi ja paina enter-näppäintä, jolloin SSH-asiakasohjelmaasi ilmestyy Irssin aloitusnäkymä.
tunnus@noppa ~ $ screen irssi
Piilottaminen ja palautus
Screen-istunnon saat piiloon taustalle näppäinyhdistelmällä ctrl-a d. Eli paina ensin ctrl- ja a-näppäin pohjaan, päästä niistä sitten irti ja paina d-näppäintä. Tämän jälkeen SSH-asiakasohjelmassasi pitäisi lukea teksti "[detached]". Voit vielä ps ax -komennolla tarkistaa, että screen ja Irssi todellakin ovat käynnissä. Varmista myös, että sinulla on vain yksi screen-prosessi käynnissä.
[detached] tunnus@noppa ~ $ ps ax PID TTY STAT TIME COMMAND 7007 ? S 0:00 sshd: tunnus@pts/7 7010 pts/7 Ss 0:00 -bash 7722 ? Ss 0:00 SCREEN irssi 7723 pts/0 Ss+ 0:00 irssi 7878 pts/7 R+ 0:00 ps ax tunnus@noppa ~ $ screen -r
Nyt voit halutessasi kirjautua ulos shellistä. Kun haluat palata screen-istuntoon ja siinä avoinna olevaan ohjelmaan, käytä komentoa screen -r. Se avaa aiemmin käynnistetyn screenin, ja siinä käynnissä oleva ohjelma tulee näkyviin. Voit jatkaa ohjelman käyttöä siitä, mihin viimeksi jäit.
Nyt siis osaat screenin perustoiminnot, joita ovat käynnistys, sammutus, piilotus (ctrl-a d) ja palautus (screen -r). Kun jatkossa kirjaudut palvelimelle, kirjoitat vain komennon screen -r. Pelkän screen-komennon kirjoittaminen käynnistää aina uuden screenin.
Yleisimmät virhetilanteet
There is no screen to be resumed
Screen -r -komento voi myös näyttää alla olevan viestin. Tämä johtuu siitä, että screen-istunto on jo avoinna jossakin muualla (esim. toisella tietokoneella), etkä voi käyttää sitä. Saat suljettua muut istunnot ja palautettua screenin itsellesi komennolla screen -rd.
tunnus@noppa ~ $ screen -r There is a screen on: 7722.pts-7.noppa (Attached) There is no screen to be resumed. tunnus@noppa ~ $ screen -rd
There are several suitable screens
Tämä ilmoitus johtuu siitä, että sinulla on enemmän kuin yksi screen-ohjelma käynnissä. Komennolla screen -r <PID> saat valittua, minkä screen-istunnon haluat palauttaa. "PID" tarkoittaa prosessin numeroa, joka on ensimmäinen numerosarja näytössäsi näkyvässä listauksessa (merkitty punaisella alapuolella). Huomaa, että prosessiesi numerot eivät ole samat kuin esimerkissä.
tunnus@noppa ~ $ screen -r There are several suitable screens on: 8477.pts-22.noppa (Detached) 8443.pts-23.noppa (Detached) Type "screen [-d] -r [pid.]tty.host" to resume one of them. tunnus@noppa ~ $ screen -r 8477
Screen ei reagoi näppäinpainalluksiin
Tämä johtuu joko siitä, että SSH-yhteytesi on katkennut tai siitä, että olet vahingossa painanut näppäinyhdistelmää ctrl-s tai ctrl-a-s. Ensimmäisessä tapauksessa sinun tulee vain muodostaa uusi SSH-yhteys palvelimelle ja palauttaa screen komennolla screen -rd. Jälkimmäiseen auttaa näppäinyhdistelmä ctrl-q tai ctrl-a-q.