Fundo:
Estou escrevendo um script de teste para um software de biologia computacional. O software que estou testando pode levar dias ou até semanas para ser executado, por isso possui uma funcionalidade de recuperação integrada, no caso de falhas no sistema ou falhas de energia.
Estou tentando descobrir como testar o sistema de recuperação. Especificamente, não consigo descobrir uma maneira de "travar" o programa de maneira controlada. Eu estava pensando em, de alguma forma, cronometrar uma instrução SIGKILL para executar após algum tempo. Provavelmente, isso não é o ideal, pois não é garantido que o caso de teste execute a mesma velocidade todas as vezes (ele é executado em um ambiente compartilhado); portanto, seria difícil comparar os logs com a saída desejada.
Este software imprime uma linha para cada seção de análise concluída.
Questão:
Eu queria saber se havia uma maneira boa / elegante (em um script de shell) para capturar a saída de um programa e depois matar o programa quando uma determinada linha / # de linhas é produzida pelo programa?