GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de tiempo de espera de Linux explicado para principiantes (con ejemplos)

A veces, cuando ejecuta un comando en Linux, es posible que desee ejecutarlo durante un período de tiempo determinado. Existe una utilidad de línea de comandos - timeout - que está desarrollado específicamente para este propósito. En este artículo, discutiremos los conceptos básicos de este comando usando algunos ejemplos fáciles de entender.

Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos de este tutorial se probaron en una máquina con Ubuntu 18.04 LTS.

Comando de tiempo de espera de Linux

Como sugiere el nombre, el comando de tiempo de espera en Linux le permite ejecutar un comando con un límite de tiempo. La siguiente es su sintaxis:

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

Y así es como lo explica la página de manual de la herramienta:

timeout - run a command with a time limit
Start COMMAND, and kill it if still running after DURATION

Los siguientes son algunos ejemplos de preguntas y respuestas que le darán una mejor idea de cómo funciona esta herramienta.

P1. ¿Cómo usar el comando de tiempo de espera?

El uso básico es bastante fácil:simplemente ejecute 'tiempo de espera' especificando en la entrada un valor de tiempo de espera (considerado en segundos), así como el comando que desea ejecutar.

Por ejemplo, si desea que se agote el tiempo de espera de un comando de ping después de 5 segundos, así es como puede usar el tiempo de espera en este caso.

timeout 5 ping google.com

P2. ¿Cómo obtener el estado de salida del comando en la salida?

De forma predeterminada, si el comando de tiempo de espera es exitoso, devuelve 124 como estado de salida. El siguiente es un ejemplo:

En el primer caso, dejé que el comando de tiempo de espera se ejecutara con éxito y, como puede ver, el estado de salida era 124. Sin embargo, durante la segunda ejecución, eliminé el comando a la fuerza usando Ctrl+C, y en ese caso, el estado de salida era 0.

Pero en caso de que desee que el tiempo de espera devuelva el estado del comando de entrada incluso si el tiempo de espera se ejecuta correctamente, deberá usar la opción de línea de comando --preserve-status.

Por ejemplo:

timeout --preserve-status 5 ping google.com

P3. ¿Cómo cambiar los envíos de tiempo de espera de la señal?

No tiene sentido adivinar que el tiempo de espera funciona enviando una señal al comando de entrada para que este último deje de ejecutarse cuando se acerque la fecha límite. De forma predeterminada, SIGTERM es utilizado por el comando.

Sin embargo, si lo desea, puede cambiar la señal que se envía por tiempo de espera. Para esto, tendrá que usar la opción de línea de comando -s y especificar como entrada la señal que desea que envíe el tiempo de espera.

Por ejemplo:

timeout -s SIGKILL [COMMAND]

Para obtener una lista de las señales disponibles que puede enviar, ejecute el siguiente comando:

kill -l

P4. ¿Cómo hacer que el tiempo de espera envíe automáticamente la señal KILL?

A veces, puede encontrar un comando de entrada que continúa ejecutándose incluso después de que el tiempo de espera envía la señal inicial. Para casos como estos, timeout ofrece una opción '--kill-after'.

Así es como lo explica la página man:

-k, --kill-after=DURATION

              also send a KILL signal if COMMAND is still running

              this long after the initial signal was sent

Entonces, como puede ver, debe especificar una duración para que el tiempo de espera sepa después de cuánto tiempo se enviará esta señal.

Conclusión

Según el tipo de trabajo que realice, el comando de tiempo de espera puede resultar una herramienta bastante útil. Aquí, en este tutorial, hemos discutido la mayoría de las opciones que ofrece esta utilidad. Una vez que haya terminado de practicar estos, puede obtener más información sobre el tiempo de espera dirigiéndose a su página de manual.


Linux
  1. Comando Linux cksum explicado para principiantes (con ejemplos)

  2. Comando wc de Linux explicado para principiantes (6 ejemplos)

  3. Comando de desexpansión de Linux explicado para principiantes (con ejemplos)

  4. Comando de salida de Linux explicado para principiantes (con ejemplos)

  5. Comando objdump de Linux explicado para principiantes (7 ejemplos)

Comando de corte de Linux explicado para principiantes (con ejemplos)

Comando uptime de Linux explicado para principiantes con ejemplos

Comando Linux dd explicado para principiantes (8 ejemplos)

Tutorial de comando Linux tr para principiantes (con ejemplos)

Comando mv de Linux explicado para principiantes (8 ejemplos)

Comando host de Linux explicado para principiantes (8 ejemplos)