Kirjoittaja Aihe: echo komento screenin sisällä  (Luettu 3283 kertaa)

vilpas

  • Käyttäjä
  • Viestejä: 133
    • Profiili
echo komento screenin sisällä
« : 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
« Viimeksi muokattu: 20.02.12 - klo:22.43 kirjoittanut vilpas »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11442
    • Profiili
    • Tomin kotisivut
Vs: echo komento screenin sisällä
« Vastaus #1 : 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ä.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

vilpas

  • Käyttäjä
  • Viestejä: 133
    • Profiili
Vs: echo komento screenin sisällä
« Vastaus #2 : 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  :-\

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11442
    • Profiili
    • Tomin kotisivut
Vs: echo komento screenin sisällä
« Vastaus #3 : 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.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

_Pete_

  • Käyttäjä
  • Viestejä: 1836
  • Fufufuuffuuu
    • Profiili
Vs: echo komento screenin sisällä
« Vastaus #4 : 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.


vilpas

  • Käyttäjä
  • Viestejä: 133
    • Profiili
Vs: echo komento screenin sisällä
« Vastaus #5 : 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.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: echo komento screenin sisällä
« Vastaus #6 : 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.
« Viimeksi muokattu: 02.03.12 - klo:14.47 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

vilpas

  • Käyttäjä
  • Viestejä: 133
    • Profiili
Vs: echo komento screenin sisällä
« Vastaus #7 : 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.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: echo komento screenin sisällä
« Vastaus #8 : 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
« Viimeksi muokattu: 05.03.12 - klo:14.12 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: echo komento screenin sisällä
« Vastaus #9 : 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  
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

vilpas

  • Käyttäjä
  • Viestejä: 133
    • Profiili
Vs: echo komento screenin sisällä
« Vastaus #10 : 14.03.12 - klo:16.56 »
eli minulla ei ole mahdollisuutta ohjata screen istuntoa bash ohjelmasta?

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: echo komento screenin sisällä
« Vastaus #11 : 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) ?
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.