Me tope con un problema en el cual debía ejecutar un proceso en varias partes y ejecutarlo nuevamente si es que había finalizado antes de terminar la tarea que necesitaba terminar, por suerte con un poco de ayuda de germán armé este pequeño script salvaje que resuelve el problema:
#!/usr/bin/bash COMMAND="process name"; $COMMAND & PID=$! FINISH=0 echo 0 > process_finished while true do if ! ps -p $PID >/dev/null; then FINISH=`cat process_finished`; if [ $FINISH -eq 1 ] then echo "batch finished running"; break; else echo "running again"; $COMMAND & PID=$! fi fi sleep 1; done
Básicamente el comando se ejecuta nuevamente si no esta siendo ejecutado a menos que se encuentre 1 en el archivo process_finished .
Quizás no es una solución elegante pero muy util y eficaz para resolver un problema puntual.
Comments
Comments powered by Disqus