<p dir="ltr"><br>
El 17/04/2014 20:04, "Emiliano Vazquez" <<a href="mailto:emilianovazquez@gmail.com">emilianovazquez@gmail.com</a>> escribió:<br>
><br>
> Hola a todos y Felices Pascuas!<br>
><br>
> Estoy armando un 2 scripts que deben interactuar entre si. Les explico:<br>
><br>
> Tengo una conección RS232 a la que le envío un echo y si el mismo esta OK me devuelve el echo, es decir:<br>
><br>
> 1. Desde el primer script en bash ejecuto :<br>
> echo "aca va la prueba" > /dev/ttyUSB0   (es un usb a rs232)<br>
><br>
> 2.Desde el segundo Script ejecuto:<br>
> head -n 1 /dev/ttyUSB<br>
><br>
> Esto lo ejecuto 59 veces por minuto (estoy haciendo pruebas seguramente después ponga algún otro valor).<br>
><br>
> En cron pongo<br>
><br>
> */1 * * * * /home/emiliano/envio_echo.sh<br>
> */1 * * * * /home/emiliano/recibo_echo.sh<br>
><br>
> El tema con el que me encuentro es que cuando pierdo conectividad el echo "aca va la prueba" no vuelve al script 2 y este se queda esperando.<br>
> Lo solucioné dando un timeout al comando:<br>
> timeout 3s head -n 1 /dev/ttyUSB<br>
> Esto me da la posibilidad de esperar 3 segundos y si no hay respuesta lo corta, volviendo a empezar.<br>
> Pero.... cuando pierdo conectividad el recibo_echo.sh aumenta su tiempo de ejecución y el siguiente cron se inicia y tengo dos ejecuciones del mismo proceso! Esto me afecta porque la idea es logear este estado y no quiero que se logee dos ves.<br>

> Probé haciendo que el script chequee que esta en ejecución, pero si lo paro después me quedo con segundos en los que no tengo ninguna instancia del script recibo_echo.sh, lo que sigue siendo un comportamiento no deseado.<br>

><br>
> Lo que me interesa es obtener ese estado de "esta andando" o "no esta andando" por eso hago este script (mi mente da para esto no se me ocurre algo más fácil jajaja). cuando tenga esto funcionando lo voy a mandar a una base de mysql, pero por el momento me conformo con escribir un log que diga " se cayo" "ahora se levantó" "se cayo", "se levanto".<br>

> Lo que tengo que evitar es que se de dos veces "se cayo" (cuando accidentalmente se ejecuta dos veces el script) o que me entere segundos más tarde si "se cayo", ya que este tiempo podría ser de hasta 59 segundos y no quisiera tener ese error.<br>

><br>
> Bueno, espero haber sido claro, si se les ocurre algo lo agradezco, solo les puedo decir que no quiero usar un loop infinito porque tuve malas experiencias ya que quizás se cuelga cuando esta ejecutandose 1000 horas. El cron es algo que no se cuelga nunca, por eso quiero hacerlo por este medio.<br>

><br>
> Un abrazo a todos y buen fin de semana!<br>
><br>
> Emiliano.<br>
><br>
><br>
><br>
><br>
> --<br>
> Ubuntu-ar lista de correo<br>
> <a href="mailto:Ubuntu-ar@lists.ubuntu.com">Ubuntu-ar@lists.ubuntu.com</a><br>
> Modifica tus opciones o desuscribite en: <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-ar">https://lists.ubuntu.com/mailman/listinfo/ubuntu-ar</a><br>
> Siempre leer, comprender y aplicar nuestra etiqueta: <a href="https://wiki.ubuntu.com/ArgentinaTeam/EtiquetaML">https://wiki.ubuntu.com/ArgentinaTeam/EtiquetaML</a><br>
><br>
><br>
Por que no probas unificar todo en un solo script con un bucle, creas dos funciones, una para en envio y otra para la recepcion, luego generas el bucle que hasta que no llegue la recepcion no envie de nuevo, y ahi le metes un timeout con un log que te registre la perdida de conectividad?</p>