Como determinar se uma tela está executando trabalhos sem anexá-la?

0

Eu escrevi um script zsh que lança várias sessões de tela e executa um comando diferente em cada uma delas. Quando o script é executado, há 72 telas no total, portanto, verificar se um job está concluído ou não manualmente é uma tarefa demorada. Posso executar um script separado que verificará se as sessões de tela têm tarefas em execução ou não e matam a sessão quando não há tarefas em execução. Você tem alguma ideia? Não pude pensar em nenhum método para verificar com segurança o que aconteceu em todas as sessões de tela, obrigado antecipadamente.

    
por Vesnog 31.08.2014 / 23:29

1 resposta

1

Eu poderia imaginar que o recurso logging de saída da tela poderia ajudar você a conseguir isso (veja o man page para detalhes). Você pode produzir registros de saída de suas sessões e verificá-los para ver se seus trabalhos foram concluídos.

Ou Você pode verificar a árvore de processos em execução (por exemplo, usando pstree ) para ver se os shells nas sessões de tela ainda têm filhos em execução ou não. No entanto, posso imaginar que analisar a saída de pstree em um script é trabalhoso e propenso a erros, portanto, você pode realmente querer usar as interfaces do kernel (para obter a árvore de processos em execução) para isso.

    
por 01.09.2014 / 00:06