Ejecutar comando con límite de tiempo en Linux

En Linux, algunos comandos tardan mucho tiempo en ejecutarse y esperamos el comando completo, pero para algunos comandos, finalizamos ese comando usando el comando kill después de un tiempo. ¿Qué pasa si automatizamos la finalización de los comandos de ejecución prolongada después de un tiempo? Sí, podemos hacerlo en Linux. Hay dos formas en que podemos limitar el tiempo para el comando, una es el comando de tiempo de espera y otra es usando el programa de límite de tiempo .

Comando de tiempo de espera

Linux tiene una utilidad de línea de comandos de tiempo de espera. Al usar esta utilidad, podemos eliminar el comando si no se completa dentro del límite de tiempo. Ahora veamos la sintaxis del comando de tiempo de espera. 

timeout [OPTION] DURATION COMMAND [ARG]...

Aquí, en el lugar de la duración, mencione el tiempo en segundos, minutos u horas utilizando el número seguido de:

  • s por segundo
  • m por minutos
  • h por horas

Si no menciona ningún carácter de arriba después del número, el tiempo de espera se considerará como un segundo. Y después de eso, menciona el comando para el que tenemos que limitar el tiempo.

Ahora tomemos un ejemplo, vamos a hacer ping al comando con 5s:

timeout 5s ping google.com

Luego puede ver que el comando finaliza después de 5 segundos.

Si no mencionamos la s después de 5, el comando se ejecutará como antes.

También podemos configurar el single para que se envíe después del proceso de eliminación usando la opción single -s o –signal. Aquí hay un ejemplo

timeout --signal=SIGQUIT 8 tail -f /var/log/pacman.log

Algunos comandos pueden continuar ejecutándose incluso después de enviar la señal inicial. Podemos manejar este tipo de comando usando la opción -k o -kill con el tiempo. La siguiente es la sintaxis

-k --kill-after=DURATION 

Para saber más sobre el comando de tiempo de espera, use el comando man:

man timeout

Programa de límite de tiempo

El límite de tiempo es una utilidad que ejecuta un comando determinado con un límite de tiempo determinado. Si el comando mencionado finaliza antes del tiempo mencionado, entonces el límite de tiempo se cierra silenciosamente. Antes de eliminar el comando, el límite de tiempo envía una advertencia al comando y luego envía una señal de eliminación. El límite de tiempo proporciona más opciones que el comando de tiempo de espera, lo cual es muy útil.

Instalación de límite de tiempo:

Para sistemas basados ​​en Debian como Ubuntu, use el siguiente comando:

sudo apt install timelimit

Para arch Linux o SO basado en arch, instálelo usando AUR. Usa el siguiente comando:

git clone https://aur.archlinux.org/timelimit.git && cd timelimit && makepkg -sri

Usando el límite de tiempo

La sintaxis básica para usar el límite de tiempo es la siguiente:

límite de tiempo [-pq] [-S killsig] [-s warnsig] [-T killtime] [-t warntime] comando [argumentos…]

Los valores predeterminados de las opciones de límite de tiempo son los siguientes:

  • tiempo de advertencia (-t): 3600
  • aviso(s) : 15
  • tiempo de matar (-T): 120
  • killsig(-S): 9

Aquí hay un ejemplo del comando de límite de tiempo:

Para saber más sobre el comando de límite de tiempo, lea la página del manual de límite de tiempo usando el comando man:

man timelimit

Publicación traducida automáticamente

Artículo escrito por nishant0073 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *