Preciso executar vários scripts de shell sequencialmente (s1.sh, s2.sh, s3.sh) com o seguinte requisito:
- Se um script não produzir nenhuma saída (stdout ou stderr) por 1 minuto, ele deve ser encerrado
- Após o término, o próximo script na sequência deve ser executado automaticamente
- Isso deve continuar até que todos os scripts sejam processados
Situação atual:
- Os scripts não saem sozinhos quando sua tarefa é concluída
- Atualmente, monitoro manualmente cada script e pressiono Ctrl-cquando não percebo nenhuma saída por um tempo
- É preciso automatizar esta intervenção manual
Exemplo de fluxo de trabalho:
- Execute s1.sh
- Se s1.sh ficar em silêncio por 1 minuto → encerre-o → execute s2.sh
- Se s2.sh ficar em silêncio por 1 minuto → encerre-o → execute s3.sh
- ...e assim por diante
Abordagem potencial que estou considerando: Estou pensando em redirecionar stdout e stderr para um arquivo e verificar o tempo de modificação do arquivo a cada segundo. Se o arquivo não tiver sido gravado por 1 minuto, eu poderia assumir que o script não tem saída e matá-lo. No entanto, não tenho certeza se essa abordagem é viável ou se há soluções melhores.
Alguém implementou algo parecido? Obrigado.