<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Bueno, parece que al final hemos entendido el problema, lo
      comparto por si a alguien le resultase util.</p>
    <p>Al final, tecnicamente nunca estabamos creando processos
      separados, ni siquiera la "GUI".</p>
    <p>Lo que ocurría, y era obvio pero se me estaba escapando, era que
      al cerrar la "GUI", sus hijos pasaban a "separarse" ellos solos.</p>
    <p>Sin embargo en un worker activo, al pararlo, parabamos todos sus
      "children" que podria ser otros workers.<br>
    </p>
    <p>Lo hemos solucionado usando os.fork() en el script the "child":</p>
    <pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'Fira Code Light',monospace;font-size:10.5pt;"><span style="color:#808080;"># Create a child process
</span><span style="color:#808080;"># using os.fork() method
</span>pid = os.fork()

<span style="color:#808080;"># pid greater than 0 represents
</span><span style="color:#808080;"># the parent process
</span><span style="color:#cc7832;">if </span>pid > <span style="color:#6897bb;">0</span>:
    sys.exit(<span style="color:#6897bb;">0</span>)
<span style="color:#cc7832;">else</span>:
    <span style="color:#808080;"># codigo del child ya corriendo separado

</span> </pre>
    <div class="moz-cite-prefix">Perdemos el stdout y los "print" que
      hay echan abajo el proceso, pero esto es un error nuestro: no
      debería haber prints y los sustituiremos por logger.info()</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Gracias por la ayuda!</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 29/4/21 9:27, Francisco José
      Fernández Naranjo wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAD74YPX-U-UYDKYpcXuQFU4comiQUHG7FMsXnm3wuwqf2Ls7jw@mail.gmail.com">
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Buena idea, voy a ver si puedo "sintetizarlo". Estoy en Linux.

Gracias, Francisco.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Sure!

Estube bicheando el código ayer aquí:
<a class="moz-txt-link-freetext" href="https://github.com/scipion-em/scipion-pyworkflow/blob/devel/pyworkflow/protocol/launch.py#L239">https://github.com/scipion-em/scipion-pyworkflow/blob/devel/pyworkflow/protocol/launch.py#L239</a>

No encontré nada que llamara la atención. A nivel de Python. Pero
claro, no se como llamáis a esa función y especialmente que pasáis en
'command'. La cosa es que al ejecutarlo con shell=True, el comando
puede estar haciendo cosas muy arbitrarias. Por eso te recomiendo que
lo reduzcas al caso más sencillo que reproduzca el error. Quizás
conservando el cuerpo de esa función tal cual.

Suerte!
_______________________________________________
Asociación Python España: <a class="moz-txt-link-freetext" href="http://www.es.python.org/">http://www.es.python.org/</a>
Python Madrid: <a class="moz-txt-link-freetext" href="http://www.python-madrid.es/">http://www.python-madrid.es/</a>
Madrid mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Madrid@lists.es.python.org">Madrid@lists.es.python.org</a>
<a class="moz-txt-link-freetext" href="https://lists.es.python.org/listinfo/madrid">https://lists.es.python.org/listinfo/madrid</a>
</pre>
    </blockquote>
    <div class="moz-signature">-- <br>
      Pablo Conesa - <strong>Madrid <a href="http://scipion.i2pc.es">Scipion</a>
        team</strong></div>
  </body>
</html>