<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">
      <div class="moz-cite-prefix">El 03/11/12 17:17, Livio Calvo
        escribi&oacute;:<br>
      </div>
      <blockquote cite="mid:5095439F.5060505@gmail.com" type="cite">
        <pre wrap="">Tengo una tarea que funciona perfectamente en Raspberry si la arranco 
manualmente despues de hacer login, o bien la invoco desde un script en 
/etc/init.d . ... Si pongo un &amp; 
al final del comando "java -jar /home/pi/AAB.jar" el resto de servicios 
siguen arrancando como era de esperar, sin embargo la aplicaci&oacute;n tiene 
un mal funcionamiento, es incapaz de enviar instrucciones por el puerto 
serie o bien no lo hace correctamente, porque el Arduino no env&iacute;a las 
respuestas, sin embargo el led parpadea cuando recibe una instrucci&oacute;n. 
Por lo demas funciona bien.</pre>
      </blockquote>
      <br>
      <br>
      Sinceramente, no entiendo el problema por el que el arduino no
      responde a la raspberry cuando env&iacute;a comandos, a no ser que otro
      programa despu&eacute;s del arranque del tuyo cambie la configuraci&oacute;n de
      comunicaciones del puerto serie y el LED parpadea por llegar
      "basura" y no comandos reales.<br>
      <br>
      <br>
    </div>
    <blockquote cite="mid:5095439F.5060505@gmail.com" type="cite">
      <pre wrap="">Se me ocurren dos maneras de arreglarlo:
1 - Retrasar el lanzamiento del java -jar ... 20-30 segundos hasta que 
los servicios hayan arrancado, pero por ahora no se como hacerlo sin 
parar el lanzamiento de servicios</pre>
    </blockquote>
    <br>
    <br>
    &iquest;C&oacute;mo lo vas a retrasar? Quiz&aacute; sea m&aacute;s l&oacute;gico ralentizar el main de
    Java para que la configuraci&oacute;n del puerto serie se realice un poco
    m&aacute;s tarde, o bien lanzar tu script en rc.local.<br>
    <br>
    Por cierto, &iquest;qu&eacute; nivel le diste a tu script de init.d dentro de los
    rcx.d? S99 es lo normal para scripts que necesitan que todo lo dem&aacute;s
    est&eacute; funcionando antes de arrancar.<br>
    <br>
    <br>
    <blockquote cite="mid:5095439F.5060505@gmail.com" type="cite">
      <pre wrap="">2 - Lanzar correctamente en un hilo separado mi tarea, cosa que por 
ahora puedo hacer pero no funciona bien

Alguna sugerencia?
</pre>
    </blockquote>
    <br>
    <br>
    Es lo correcto. &iquest;Has probado con nohup?<br>
    <br>
    Puedes usar /etc/rc.local y poner:<br>
    <br>
    nohup java -jar /home/pi/AAB.jar &amp;<br>
    <br>
    Pero de esa manera no podr&aacute;s obtener el PID. Lo ideal es que cierres
    la salida y error est&aacute;ndar desde dentro del java de esta manera:<br>
    <br>
    static public void cerrar_todo() {<br>
    &nbsp;&nbsp; System.out.close();<br>
    &nbsp;&nbsp; System.err.close();<br>
    }<br>
    <br>
    Y as&iacute; puedes escribir un script de arranque que puedas meter en
    /etc/init.d/ como (recuerda que sea S99xxx el enlace simb&oacute;lico en
    los rcx.d):<br>
    <br>
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-1">
    #!/bin/bash<br>
    java -jar /home/pi/AAB.jar &amp;<br>
    echo "$!" &gt; /home/pi/AAB.pid<br>
    <br>
    Tambi&eacute;n puedes redirigir todo a /dev/null as&iacute;:<br>
    java -jar /home/pi/AAB.jar &gt; /dev/null 2&gt;&amp;1 &amp;<br>
    <br>
    Pero es menos elegante. Prueba varias de las opciones y nos comentas
    qu&eacute; tal salen.<br>
    <br>
    Un saludo.<br>
  </body>
</html>