Karakter sturen naar proces

Pagina: 1
Acties:

  • Fuss!
  • Registratie: Mei 2004
  • Laatst online: 30-01 08:31
Even schetsen: op een embedded systeem waar ik wat op het prutsen ben draait een kleine linuxvariant. Als root heb ik hierop een binary file gezet (geen source voorhanden) dat, na uitvoeren, in de voorgrond blijft draaien.
Mits het invoeren van karakters via het toetsenbord is het mogelijk om het programma te besturen. Het programma heb ik in een startupscript gestoken en laadt dus bij het opstarten.

De bedoeling is dat er geautomatiseerd een aantal toetsen ingedrukt worden.
Mijn vraag is nu: kan ik dit programma 'besturen' via een andere shell, dus ? Dus zoiets iets als "echo 'a' > process_id"?

Ik heb al wat zitten zoeken op named pipes, maar die hebben mij geen antwoord kunnen geven.

  • BarthezZ
  • Registratie: Juli 2004
  • Niet online

BarthezZ

anti voetbal en slechte djs!

je zou het via screen kunnen proberen.

man screen

  • SambalBij
  • Registratie: September 2000
  • Laatst online: 18:41

SambalBij

We're all MAD here

Hoe bedoel je hebben je geen antwoord kunnen geven? Het werkt niet of je weet niet hoe je dat moet doen? In het laatste geval kun je het volgende eens proberen:

Je kunt het inderdaad met een named pipe proberen, maar je hebt een kans dat het proces dan blijft hangen als er geen invoer voorhanden is.

Het is wel belangrijk om te weten of het proces invoer kan accepteren via de stdin.
Dat kun je wel testen, door als je bijv in het programma de toets 'a' moet drukken hem eens op te starten met echo 'a' | /programmanaam

Als dat werkt, en het programma vervolgens goed draait, dan kun je eens een named pipe aanmaken met mkfifo /named_pipe
Start vervolgens het programma op met als invoer die pipe: /programmanaam < /named_pipe

Daarna kun je proberen of hij commando's accepteert via die pipe door in een andere shell iets van echo 'a' > /named_pipe op te geven...

[ Voor 9% gewijzigd door SambalBij op 28-08-2007 23:35 ]

Sometimes you just have to sit back, relax, and let the train wreck itself


  • Fuss!
  • Registratie: Mei 2004
  • Laatst online: 30-01 08:31
Bedankt voor de antwoorden. Helaas heb ik niet vroeger kunnen reageren, maar blijkbaar is het mogelijk om bij het opstarten reeds enkele commando's mee te geven die voor het juiste gedrag zorgen. Omslachtiger gedoe via named pipes, screen of iets anders is dus niet meer nodig.