<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    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>
    <small><i>echo "aca va la prueba" > /dev/ttyUSB0   (es un usb a
        rs232)</i><br>
    </small><br>
    2.Desde el segundo Script ejecuto:<br>
    <small><i>head -n 1 /dev/ttyUSB</i><br>
    </small><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
    <small><i>echo "aca va la prueba"</i></small> no vuelve al script 2
    y este se queda esperando.<br>
    Lo solucioné dando un timeout al comando:<br>
    <small><i>timeout 3s head -n 1 /dev/ttyUSB</i></small><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>
  </body>
</html>