keepalive.sh : Relancer une commande en boucle

Une petite astuce pour relancer en boucle une commande jusqu’à ce que le processus se termine en manière attendue :

  1. #!/bin/bash
  2. # keepalive.sh
  3.  
  4. until $1; do
  5.     echo "Processus terminé avec exit code $?.  On relance..." >&2
  6.     sleep 1
  7. done
  8.  
  9. exit 0

Télécharger

À l’usage (une fois que le fichier est dans le $PATH) :

  1.  keepalive.sh "youtube-dl -f hls-best http://www.tf6.ch/concours-super-menuisier.html"

Pratique, si le téléchargement connait des ratés, plus besoin de le relancer soi-même.