Estou entrando no unix de outro mundo e queria saber se
while true
do
/someperlscript.pl
done
O próprio script perl possui internamente um observador de pastas / arquivos que é executado quando os arquivos são alterados no local de destino.
Isso é ( while true
) uma boa ideia? Caso contrário, qual é a abordagem robusta preferida?
TIA
Edição: Como isso parece ter gerado um pouco de interesse, aqui está o cenário completo. O próprio script perl observa um diretório usando um observador de arquivos. Ao receber novos arquivos (eles chegam via rsync), ele pega o novo e o processa. Agora, os arquivos recebidos podem estar corrompidos (não pergunte .. provenientes de um raspberry pi) e, às vezes, o processo pode não ser capaz de lidar com isso. Não sei exatamente por que, porque ainda não estamos cientes de todos os cenários.
MAS - se o processo falhar por algum motivo, queremos que ele esteja em funcionamento e lide com o próximo arquivo, porque o próximo arquivo não tem nenhuma relação com o arquivo anterior que pode ter causado o erro.
Normalmente, eu usaria algum tipo de catch all e envolvia todo o código em torno dele para que NUNCA travasse. Mas não tinha certeza do perl.
Pelo que entendi, usar algo como supervisord é uma boa abordagem para isso.
inotify
API para evitar um loop ocupado aguardando a alteração dos arquivos no diretório de destino.