Solo estoy saltando a Unix desde un mundo diferente, y quería saber si
while true
do
/someperlscript.pl
done
El script perl en sí tiene internamente una carpeta / observador de archivos que se ejecuta cuando los archivos se cambian en la ubicación de destino.
¿Es esta ( while true
) una buena idea? Si no, ¿cuál es un enfoque robusto preferido?
TIA
EDITAR: Dado que esto parece haber generado un poco de interés, aquí está el escenario completo. El script perl mismo mira un directorio usando un observador de archivos. Al recibir nuevos archivos (llegan a través de rsync), recoge el nuevo y lo procesa. Ahora los archivos entrantes pueden estar corruptos (no pregunte ... provenientes de una frambuesa pi), y a veces el proceso puede no ser capaz de manejarlo. No sé exactamente por qué, porque todavía no conocemos todos los escenarios.
PERO: si el proceso falla por algún motivo, queremos que esté en funcionamiento y que se ocupe del siguiente archivo, porque el siguiente archivo no tiene ninguna relación con el anterior que podría haber causado el error.
Por lo general, habría usado algún tipo de captura de todo y envuelto todo el código a su alrededor para que NUNCA se bloquee. Pero no estaba seguro de Perl.
Por lo que he entendido, usar algo como supervisión es un buen enfoque para esto.
inotify
API para evitar un bucle ocupado esperando que los archivos cambien en su directorio de destino.