Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: vilpas - 20.02.12 - klo:22.18

Otsikko: echo komento screenin sisällä
Kirjoitti: vilpas - 20.02.12 - klo:22.18
Morjens tossa tuommoista minecraft palvelinta pyörittelen kavereitten kanssa ja jonkinlainen automaatio ois mukava päivityksissä sun muussa

miten saan echo komennon printtaamaan minecraft ohjelman sisällä screenissä?
bashilla kirjoittelen tätä koodia.

ja mihin laitetaan käynnistyksen ja sammutuksen yhteydessä ajettavat skriptit?

ubuntu 10.04 server
almost newbie
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: Tomin - 20.02.12 - klo:22.48
En nyt ole ihan selvillä mitä tarkoitit? Oliko tarkoitus onnistua lähettämään tekstiä sinne screen istuntoon?
Screenin man sivulta jota pystyt itsekin lukemaan komentamalla 'man screen' löysin seuraavaa:
Koodia: [Valitse]
       -X   Send the specified command to a running screen  session.  You  can
            use  the  -d or -r option to tell screen to look only for attached
            or detached screen sessions. Note that this command  doesn't  work
            if the session is password protected.
Alempana noita -X vivun perään laitettavia komentoja kuten stuff:
Koodia: [Valitse]
screen -X stuff "boo"tulostaa avonaiseen screenin istuntoon komentokehotteeseen tekstin boo (ei suorita tai mitään sellaista). Tästä varmaan voi kehitellä jotain. En selvittänyt miten tuon saisi "painamaan" entteriä.
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: vilpas - 20.02.12 - klo:23.16
En nyt ole ihan selvillä mitä tarkoitit? Oliko tarkoitus onnistua lähettämään tekstiä sinne screen istuntoon?
Screenin man sivulta jota pystyt itsekin lukemaan komentamalla 'man screen' löysin seuraavaa:
Koodia: [Valitse]
       -X   Send the specified command to a running screen  session.  You  can
            use  the  -d or -r option to tell screen to look only for attached
            or detached screen sessions. Note that this command  doesn't  work
            if the session is password protected.
Alempana noita -X vivun perään laitettavia komentoja kuten stuff:
Koodia: [Valitse]
screen -X stuff "boo"tulostaa avonaiseen screenin istuntoon komentokehotteeseen tekstin boo (ei suorita tai mitään sellaista). Tästä varmaan voi kehitellä jotain. En selvittänyt miten tuon saisi "painamaan" entteriä.

juuri tätä tarkoitin mutta tuo enter on nyt se ongelma  :-\
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: Tomin - 21.02.12 - klo:14.06
juuri tätä tarkoitin mutta tuo enter on nyt se ongelma  :-\
Ei hätää, eiköhän senkin voi tehdä. En vaan joutanut selvittelemään eilen.

Tämmöisen löysin: http://aperiodic.net/screen/faq
Lainaus
How to send a command to a window in a running screen session from the commandline?

 (We assume that we have a screen session with the name “test” running with a window 0.)
screen -S test -p 0 -X stuff 'top^M'

 The '^M' needs to be literal so precede it with '^V' in bash, for example. Or you can use the (four characters) '\012' (which works for bash only in a script).

Mutta en saanut tuota toimimaan. Lähettää aina merkkeinä tuon ^M:n.
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: _Pete_ - 22.02.12 - klo:07.48
miten saan echo komennon printtaamaan minecraft ohjelman sisällä screenissä?
bashilla kirjoittelen tätä koodia.

Tarkoitatko että kun päällä olevassa minecraft ohjelmassa tapahtuu jokin tietty toimnto, sen seurauksena
suoritettaisiin echo?

Ellei minicraftissa kyseistä toimintoa ole valmiina sen saa siihen ainoastaan muuttamalla lähdekoodia ja kääntämällä oman version.

Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: vilpas - 02.03.12 - klo:12.20
hieman huonosti muotoiltu otsiko.
mutta tarkoitus olisi että tietyin väliajoin käynnistyvä bash ohjelma kirjoittaa minecraftin screen ikunaan jotain koodia esimerkiksi kun palvelinta sammutetaan.
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: ajaaskel - 02.03.12 - klo:14.45
Miten olisi:

Koodia: [Valitse]
echo -e "\012\012Jotain tekstiä tänne\012\012" > /dev/pts/1
Nuo "\012" ovat rivin vaihtoja, "dev/pts/<jokin_numero>"  ovat screenejä.

Koodia: [Valitse]
screen -mavaa kokeiluscreenin tyhjänä jos testailet.
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: vilpas - 03.03.12 - klo:22.42
toimiihan nuo muttei entteriä osaa painaa?

Miten olisi:

Koodia: [Valitse]
echo -e "\012\012Jotain tekstiä tänne\012\012" > /dev/pts/1
Nuo "\012" ovat rivin vaihtoja, "dev/pts/<jokin_numero>"  ovat screenejä.

Koodia: [Valitse]
screen -mavaa kokeiluscreenin tyhjänä jos testailet.
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: ajaaskel - 05.03.12 - klo:09.24
Löysit mielenkiintoisen asian.  Sinne saa lähetettyä sekä "LF" (oct 012) että "CR" (oct 015) koodit helposti.   Pääte tulkitsee nuo päätteen ohjauskoodeiksi niin että kohdistin liikkuu niiden mukaisesti.   Kokeilin myös päätteen ohjausta "Esc" -koodeilla, pääte vaihtaa edustaväriä, resetoi, ym. helposti.

Tuo ei kuitenkaan ollut mitä haluat eli että jokin "painaisi Enter" siellä päätteellä.  Noissa "eskeippikoodeissa" löytyy myös "numeropadin Enter" mutta pääte ei tottele tuota koodia.  Heräsi jopa epäilys onko tuo "Enter": in painaminen päätteessä etänä tarkoituksella estetty  --- hieman vaikeampi käynnistää mielivaltaisia ohjelmia päätteessä kun ei voi painaa "ohjelmia käynnistävää Enter": iä.    :)

En heti löytänyt dokumenttia/selitystä tuosta, ehkä joku muu tietää tuon asian logiikan paremmin ?

Tuossa on yksi peliäsi koskeva linkki:

http://unix.stackexchange.com/questions/5847/why-is-screen-seemingly-doing-nothing-with-commands-passed-with-x (http://unix.stackexchange.com/questions/5847/why-is-screen-seemingly-doing-nothing-with-commands-passed-with-x)
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: ajaaskel - 05.03.12 - klo:18.35
Löysin vahvistuksen ajatukselleni:  Se "Enter": in painaminen etänä on tahallisesti estetty.  Tuo olisi muuten tietoturvareikä.  Näytöllä näytettävän datan lähettämiselle ei ole estettä.

Tässä viite:

http://stackoverflow.com/questions/8677623/linux-pseudo-terminals-executing-string-sent-from-one-terminal-in-another (http://stackoverflow.com/questions/8677623/linux-pseudo-terminals-executing-string-sent-from-one-terminal-in-another)  
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: vilpas - 14.03.12 - klo:16.56
eli minulla ei ole mahdollisuutta ohjata screen istuntoa bash ohjelmasta?
Otsikko: Vs: echo komento screenin sisällä
Kirjoitti: ajaaskel - 15.03.12 - klo:10.56
eli minulla ei ole mahdollisuutta ohjata screen istuntoa bash ohjelmasta?

Kokeilitko tuon ylempänä olevan linkin asiat eli ottaako Minecraft vastaan komentoja tuota kautta (vaikka päätteelle suoraan niitä ei saa ajoon) ?