Tengo una secuencia de comandos python que usa multiprocesamiento y subproceso para ejecutar múltiples comandos externos en paralelo con diferentes argumentos. El código se puede encontrar here.Python dentro de la pantalla GNU eventualmente queda inactivo si la pantalla está destrabada
Para mayor comodidad, inicio este script dentro de una sesión de pantalla de GNU. La máquina donde se ejecuta esta secuencia de comandos tiene 12 procesadores que están inactivos hasta que los procesos se activen.
Cada uno de los procesos tarda entre unas pocas horas a un par de días para ejecutarse, por lo tanto, a menudo me desconecto de la máquina y desconecto la sesión de la pantalla.
Sin embargo, recientemente he notado un comportamiento que nunca antes había experimentado. En varias ocasiones he regresado a la máquina para encontrarla inactiva con una carga de cero. Si obtengo una lista de procesos activos ya sea a través de ps ux
o top
, puedo encontrar la secuencia de comandos (y los subprocesos) en la lista de procesos. Luego vuelvo a conectar la sesión de la pantalla para verificar el estado del programa e inmediatamente se envía un nuevo lote de procesos a la cola y la carga del sistema vuelve a 12 en cuestión de segundos. Tenga en cuenta que no hice absolutamente nada con el script, salvo volver a conectar la sesión de pantalla.
He instalado una herramienta de supervisión en el sistema y lo que sucede es que algunos procesos finalizan después de cierto tiempo y no se inician nuevos procesos. Por lo tanto, el sistema está activo hasta que los subprocesos estén ocupados y quede inactivo tan pronto como no se liberen más trabajos de la cola.
Así que mi pregunta es, ¿alguien sabe de alguna razón que explica este comportamiento?
EDIT: Después de un año más o menos, este problema ya no es reproducible, ya sea un parche en la pantalla o la propia pitón. Estoy aceptando la respuesta, ya que proporciona buenas indicaciones para las pruebas.
¿Puede decirnos qué versión de python y pantalla estaba usando cuando ocurrió el problema, y qué versiones está utilizando ahora que el problema ya no ocurre? Tengo un problema muy similar yo mismo. – SpoonMeiser
Lo siento SpoonMeiser, el problema fue hace mucho tiempo que ya no tengo esa información. Desde entonces comencé a usar tmux en lugar de pantalla. En cuanto a las soluciones, utilicé el registro de archivos en lugar de imprimir en stdout/stderr. – Unode