ALL Estou às voltas com um problema interessante de programação shell script. O que eu quero é chamar um shell script, que por sua vez vai se chamar a si mesmo "n" vezes, cada uma com um parâmetro diferente na linha de comando, mas não vai esperar para terminar a execução, vai colocar em background e, quando eu der Ctrl-C no processo-pai, matar todos os filhos e então encerrar. Meio estranho, não? Podem pensar nisto como uma espécie de super-servidor, ou coisa do tipo. Um pseudo código para o que eu estou pensando seria:
inicio se "$1" estiver vazio então para argumento em arg1 arg2 arg3 faça $0 $argumento & fim-faça espera Ctrl-C mata filhotes fim senão repetir comando-qualquer $1 espera 15 segundos fim-repetir fim-se fim Cheguei a alguma coisa assim: #!/usr/bin/env bash if [ -z "$1" ] then for arg in primeiro segundo terceiro do $0 $arg & done wait else while true do echo $1 sleep 15 done return fi A pergunta: esta é a melhor técnica de implementar este tipo de coisa? Outra pergunta, para impedir que o script seja executado mais de uma vez sem parâmetro nenhum, o ideal é colocar uma espécie de "lock file", qual a técnica usada em shell script para isto? E para garantir uma saída "limpa"? Abraços