Linux en español
Tutoriales

Ejecutar comandos por un tiempo limitado en Linux

comando timeout
1 minuto de lectura

Traigo un tip interesante para probar, y es poder correr una aplicación por el tiempo que necesitemos y luego cerrarla, el comando en cuestión se llama timeout presente en el paquete coreutils y por lo general esta instalado en la mayoría de las distribuciones linux.

Vamos a ver un ejemplo del comando ping y que después de 6 segundos corte el proceso:

timeout 6s ping google.com

Ahora bien, esto hará que el comando ping finalice sin mostrar el resumen correspondiente, esto se debe a diferentes señales enviadas: mientras que Ctrl+C corresponde con SIGINT (señal 2), timeout envía por defecto SIGTERM (señal 15) cuando no se especifica una como parámetro.

Es posible cambiar la señal con la opción -s y poder enviar SIGINT en lugar de SIGTERM al alcanzar el límite de tiempo:

timeout -s SIGINT 6s ping google.com

Algo interesante es que timeout soporta el envío de una señal SIGKILL (señal 9) posterior, si es que el proceso no ha finalizado correctamente. Puede pasar que los procesos no responden en tiempo y forma a la señal SIGTERM o SIGINT, de esta forma es posible enviar una última señal SIGKILL para matarlos definitivamente.

Otro ejemplo interesante es por ejemplo correr el comando top por un determinado tiempo que paso a mostrar:

timeout 1m top

En fin, cualquier comando puede ser lanzado y detenido a gusto del usuario, sin duda hay que darle unos minutos para probarlo.

Entradas relaccionadas

Una instalación limpia de Ubuntu 18.04 con Unity desde mini ISO

Linux en Español

Cómo obtener información del hardware en linux

Diego García Cuesta

Proteger un directorio apache con contraseña

Diego García Cuesta

Cómo configurar un servidor web en Amazon Web Services

Diego García Cuesta

Cómo configurar FastCGI Caching en Nginx

Diego García Cuesta

Cómo instalar plesk sobre linux

Diego García Cuesta