Cómo ejecutar un comando con límite de tiempo (tiempo de espera) en Linux


Linux viene con una gran cantidad de comandos, cada comando es único y se usa en casos específicos. El objetivo de Linux es ayudarlo a ser lo más rápido y eficiente posible. Una propiedad de un comando de Linux es el límite de tiempo. Puede establecer un límite de tiempo para cualquier comando que desee. Si el tiempo expira, el comando deja de ejecutarse.

En este breve tutorial, aprenderá dos métodos sobre cómo puede usar un límite de tiempo en sus comandos.

  1. Ejecute comandos de Linux con la herramienta de tiempo de espera
  2. Ejecute comandos de Linux mediante el programa Timelimit

Linux tiene una utilidad de línea de comandos llamada tiempo de espera, que le permite ejecutar un comando con un límite de tiempo.

Su sintaxis es la siguiente.

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

Para usar el comando, especifique un valor de tiempo de espera (en segundos) con el comando que desea ejecutar. Por ejemplo, para agotar el tiempo de espera de un comando ping después de 5 segundos, puede ejecutar el siguiente comando.

# timeout 5s ping google.com

No es necesario que especifique el (los) después del número 5. El comando siguiente es el mismo y seguirá funcionando.

# timeout 5 ping google.com

Otros sufijos incluyen:

  • m que representa minutos
  • h que representa las horas
  • d que representa días

A veces, los comandos pueden continuar ejecutándose incluso después de que el tiempo de espera envíe la señal inicial. En tales casos, puede usar la opción --kill-after .

Aquí está la sintaxis.

-k, --kill-after=DURATION

Debe especificar una duración para que el tiempo de espera sepa después de cuánto tiempo se enviará la señal de interrupción.

Por ejemplo, el comando que se muestra se terminará después de 8 segundos.

# timeout 8s tail -f /var/log/syslog

El programa Timelimit ejecuta un comando dado y luego finaliza el proceso después de un tiempo específico usando una señal dada. Inicialmente pasa una señal de advertencia y luego, después de un tiempo de espera, envía la señal de interrupción.

A diferencia de la opción de tiempo de espera, Timelimit tiene más opciones como killsig, warnsig, killtime y warntime.

Timelimit se puede encontrar en los repositorios de los sistemas basados en Debian y para instalarlo, use el siguiente comando.

$ sudo apt install timelimit

Para los sistemas basados en Arch, puede instalarlo utilizando programas auxiliares de AUR, por ejemplo, Pacaur Pacman y Packer.

# Pacman -S timelimit
# pacaur -S timelimit
# packer -S timelimit

Otras distribuciones de Linux, puede descargar la fuente de límite de tiempo e instalarla manualmente.

Después de la instalación, ejecute el siguiente comando y especifique la hora. En este ejemplo, puede utilizar 10 segundos.

$ timelimit -t10 tail -f /var/log/pacman.log

Tenga en cuenta que si no especifica argumentos, Timelimit usa los valores predeterminados: warntime u003d 3600 segundos, warnsig u003d 15, killtime u003d 120 y killsig u003d 9.

En esta guía, ha aprendido a ejecutar comandos con un límite de tiempo en Linux. En resumen, puede utilizar el comando Timeout o la utilidad Timelimit.

El comando Timeout es fácil de usar, pero la utilidad Timelimit es un poco complicada pero tiene más opciones. Puedes elegir la opción más adecuada en función de tus necesidades.