Búsqueda de sitios web

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 ayudarle 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 usar un límite de tiempo en sus comandos.

En esta página:
  1. Ejecute comandos de Linux usando la herramienta de tiempo de espera
  2. Ejecute comandos de Linux usando el programa de límite de tiempo

Ejecute comandos de Linux usando la herramienta de tiempo de espera

Linux tiene una utilidad de línea de comandos llamada timeout, 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, especifica 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 especificar las s) después del número 5. El siguiente comando es el mismo y seguirá funcionando.

timeout 5 ping google.com

Otros sufijos incluyen:

  • m que representa minutos
  • h representa 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 utilizar 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 finalizará después de 8 segundos.

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

Ejecute comandos de Linux usando el programa de límite de tiempo

El programa Timelimit ejecuta un comando determinado y luego finaliza el proceso después de un tiempo específico utilizando una señal determinada. 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 timeout, Timelimit tiene más opciones como killsig, warnsig, killtime > y tiempo de advertencia.

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

sudo apt install timelimit

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

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

En 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 utiliza los valores predeterminados: warntime=3600 segundos, warnsig=15, killtime =120 y killsig=9.

Conclusión

En esta guía, ha aprendido cómo ejecutar comandos con límite de tiempo en Linux. En revisión, puede utilizar el comando Tiempo de espera o la utilidad Límite de tiempo.

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