A veces cuando ejecutamos un proceso en Linux, este puede fallar por cualquier motivo imprevisto, por ejemplo en youtube-dl cuando descargamos un vídeo de páginas como mitele.es a veces se cierra porque encuentra algún error en la red desde donde está descargando, youtube-dl es capaz de reanudar la descarga si se vuelve a ejecutar pero si no podemos estar pendientes he creado un pequeño script para solucionar este tipo de errores. Crea un fichero llamado wdog.sh y dale permisos de ejecución (si lo metes en /usr/bin mejor), ábrelo con nano, vi, xed, edit o tu editor favorito y escribe el siguiente código:

#!/bin/bash
# Ejecuta un daemon para no cerrar un proceso solo si falla.
code=1
retry=10
while (( $code != 0 && $code != 4 && $retry != 0  )); do
 $@
 code=$?     
 retry=$(( retry-1 ))
 echo «Intentos restantes: »
 echo $retry
done

Guárdalo.  Para usarlo basta con poner en la terminal donde se creó el fichero (en el caso de no tenerlo guardado en /usr/bin) 

./wdog.sh tuprograma

Donde tuprograma se refiere al programa del que va a estar pendiente Linux de no cerrarse con sus parámetros incluidos. En el caso de querer meterlo en /usr/bin puedes guardarlo directamente sin la extensión .SH y usarlo como un comando más desde cualquier directorio (por ejemplo: wdog youtube-dl direccion)

El script tiene un máximo de 10 reintentos (en caso de que vaya fallando tu aplicación, despues de esos 10 intentos el script se cerrará para no volver a entrar al bucle), esté numero se puede cambiar en la cuarta línea cambiando el 10 por el número que necesites. Yo lo uso sobretodo para youtube-dl porque últimamente sin esto tengo que estar pendiente a que se haya completado la descarga, pero se puede usar para otros comandos.  

No responses yet

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

HACIENDO PRUEBA