[Py-MAD] POpen y process spawn

Pablo Conesa pconesa at cnb.csic.es
Thu Apr 29 12:40:36 CEST 2021


Bueno, parece que al final hemos entendido el problema, lo comparto por 
si a alguien le resultase util.

Al final, tecnicamente nunca estabamos creando processos separados, ni 
siquiera la "GUI".

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.

Sin embargo en un worker activo, al pararlo, parabamos todos sus 
"children" que podria ser otros workers.

Lo hemos solucionado usando os.fork() en el script the "child":

# Create a child process # using os.fork() method pid = os.fork()

# pid greater than 0 represents # the parent process if pid >0:
     sys.exit(0)
else:
     # codigo del child ya corriendo separado   

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()

Gracias por la ayuda!

On 29/4/21 9:27, Francisco José Fernández Naranjo wrote:
>> Buena idea, voy a ver si puedo "sintetizarlo". Estoy en Linux.
>>
>> Gracias, Francisco.
> Sure!
>
> Estube bicheando el código ayer aquí:
> https://github.com/scipion-em/scipion-pyworkflow/blob/devel/pyworkflow/protocol/launch.py#L239
>
> 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: http://www.es.python.org/
> Python Madrid: http://www.python-madrid.es/
> Madrid mailing list
> Madrid at lists.es.python.org
> https://lists.es.python.org/listinfo/madrid
-- 
Pablo Conesa - *Madrid Scipion <http://scipion.i2pc.es> team*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.es.python.org/pipermail/madrid/attachments/20210429/903910b2/attachment.htm>


More information about the Madrid mailing list