Dudas sobre comunicación entre scripts y shells

elfito

Buenas!

Necesito haber si alguien sabe si hay manera humana de pasar datos/comando/loquesea a un script que corre en bucle.

Tengo un script en python en una raspi, que hace unas operaciones en bucle infinito, y a la vez necesito que pueda recibir datos/comandos vía shell. Alguien tiene idea de que se pueda hacer algo así o parecido? El tema es que tengo que solventar el que mediante comandos en la shell pueda modificar el funcionamiento de un script ya corriendo.

Lo que he probado ha sido el mítico raw_input pero me genera pausa en el script hasta que el usuario introduce algo por teclado.

Un saludooo y gracias!

balmunG_

No he tocado nunca Python, pero el equivalente en C de lo que pides son las señales (signals). Básicamente se asigna un comportamiento para una señal determinada que se ejecutará al recibirla, interrumpiendo así la ejecución normal del programa.

Quizá buscando información al respecto encuentres un equivalente en Python. Suerte!

1 1 respuesta
elfito

#2 Signals. Oido cocina!

Kaiserlau

#1 Podrias explicar un poco de q va el script? Has mirado threads en python?

r2d2rigo

#1 A las malas crea un fichero intermedio que el script le haga poll a cada iteracion.

Deoxys

#1 si quieres meter cosas por teclado sin bloquear el bucle busca non-blocking input, es un poco código vudú pero funciona

https://github.com/Achifaifa/snakeb/blob/master/snakeb.py#L193-L209

1 respuesta
sasher

Lo normal es que controles la entrada por teclado en un hilo a parte, lo cual resulta más intuitivo y escalable de cara al futuro.

La solución que plantea #6 me parece más un workaround que una solución final, además de que no es multiplataforma.

jonnand

Threading y sockets. Que el script esté a la escucha de sockets y cuando lo reciba que haga lo que tenga que hacer.

1
elfito

Finalmente ha ganado sockets y threading. Gracias a todos ^^

Usuarios habituales

  • elfito
  • jonnand
  • sasher
  • Deoxys
  • r2d2rigo
  • Kaiserlau
  • balmunG_