¿Cómo determinar si una pantalla está ejecutando trabajos sin adjuntarla?

¿Cómo determinar si una pantalla está ejecutando trabajos sin adjuntarla?

Escribí un zshscript que inicia muchas sesiones de pantalla y ejecuta un comando diferente en cada una de ellas. Cuando se ejecuta el script, hay 72 pantallas en total, por lo que comprobar si uno jobestá finalizado o no manualmente es una tarea que requiere mucho tiempo. ¿Puedo ejecutar algún script separado que verifique si las sesiones de pantalla tienen trabajos en ejecución o no y finalice la sesión cuando no haya trabajos en ejecución? ¿Tienes alguna idea? No se me ocurrió ningún método para comprobar de manera confiable lo que sucedió en todas las sesiones de pantalla, gracias de antemano.

Respuesta1

Podría imaginar que elregistro de salidacaracterística de la pantalla podría ayudarle a lograr esto (consulte lapágina de manualpara detalles). Puede generar registros de salida de sus sesiones y verificarlos para ver si sus trabajos han finalizado.

O puede verificar el árbol de procesos en ejecución (por ejemplo, usando pstree) para ver si los shells dentro de las sesiones de pantalla todavía tienen elementos secundarios en ejecución o no. Sin embargo, me imagino que analizar la salida de pstreeun script es engorroso y propenso a errores, por lo que es posible que desee utilizar las interfaces del kernel (para obtener el árbol de procesos en ejecución) para eso.

información relacionada