GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de tiempo de espera en Linux

timeout es una utilidad de línea de comandos que ejecuta un comando específico y lo finaliza si aún se está ejecutando después de un período de tiempo determinado. En otras palabras, timeout le permite ejecutar un comando con un límite de tiempo. El timeout El comando es parte del paquete de utilidades principales de GNU, que se instala en casi cualquier distribución de Linux.

Es útil cuando desea ejecutar un comando que no tiene una opción de tiempo de espera incorporada.

En este artículo, explicaremos cómo usar el timeout de Linux comando.

Cómo usar el timeout Comando #

La sintaxis para el timeout El comando es el siguiente:

timeout [OPTIONS] DURATION COMMAND [ARG]…

La DURATION puede ser un número entero positivo o un número de coma flotante, seguido de un sufijo de unidad opcional:

  • s - segundos (predeterminado)
  • m - minutos
  • h - horas
  • d - días

Cuando no se utiliza ninguna unidad, el valor predeterminado es segundos. Si la duración se establece en cero, el tiempo de espera asociado se desactiva.

Las opciones de comando deben proporcionarse antes de los argumentos.

Aquí hay algunos ejemplos básicos que demuestran cómo usar el timeout comando:

  • Terminar un comando después de cinco segundos:

    timeout 5 ping 8.8.8.8
  • Terminar un comando después de cinco minutos:

    timeout 5m ping 8.8.8.8
  • Terminar un comando después de un minuto y seis segundos:

    timeout 1.1m ping 8.8.8.8

Si desea ejecutar un comando que requiere privilegios elevados como tcpdump , anteponga sudo antes del timeout :

sudo timeout 300 tcpdump -n -w data.pcap

Enviando señal específica #

Si no se da ninguna señal, timeout envía el SIGTERM señal al comando administrado cuando se alcanza el límite de tiempo. Puede especificar qué señal enviar usando -s (--signal ) opción.

Por ejemplo, para enviar SIGKILL al ping comando después de un minuto, usaría:

sudo timeout -s SIGKILL ping 8.8.8.8

Puede especificar la señal por el nombre, como SIGKILL , o su número como 9 . El siguiente comando es idéntico al anterior:

sudo timeout -s 9 ping 8.8.8.8

Para obtener una lista de todas las señales disponibles, use kill -l comando:

kill -l

Eliminación de procesos atascados #

SIGTERM , la señal predeterminada que se envía cuando se excede el límite de tiempo, puede ser capturada o ignorada por algunos procesos. En esas situaciones, el proceso continúa ejecutándose después de que se envía la señal de terminación.

Para asegurarse de que el comando monitoreado se elimine, use -k (--kill-after ) opción seguida de un período de tiempo. Cuando se usa esta opción después de alcanzar el límite de tiempo dado, el timeout El comando envía el SIGKILL señal al programa administrado que no se puede capturar ni ignorar.

En el siguiente ejemplo, timeout ejecuta el comando durante un minuto, y si no se termina, lo matará después de diez segundos:

sudo timeout -k 10 1m ping 8.8.8.8

tiempo de espera -k “./prueba.sh”

asesinado después de alcanzar el límite de tiempo dado

Preservando el Estado de Salida #

timeout devuelve 124 cuando se alcanza el límite de tiempo. De lo contrario, devuelve el estado de salida del comando administrado.

Para devolver el estado de salida del comando incluso cuando se alcanza el límite de tiempo, use --preserve-status opción:

timeout --preserve-status 5 ping 8.8.8.8

Corriendo en primer plano #

De forma predeterminada, timeout ejecuta el comando administrado en segundo plano. Si desea ejecutar el comando en primer plano, utilice --foreground opción:

timeout --foreground 5m ./script.sh

Esta opción es útil cuando desea ejecutar un comando interactivo que requiere la entrada del usuario.

Conclusión #

El timeout El comando se usa para ejecutar un comando determinado con un límite de tiempo.

timeout es un comando simple que no tiene muchas opciones. Por lo general, invocará timeout solo con dos argumentos, la duración y el comando administrado.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. Comando ifconfig de Linux

  2. comando linux mv

  3. Linux du comando

  4. Comando IP de Linux

  5. Comando cd de linux

Comando libre en Linux

Comando Sudo en Linux

Localizar comando en Linux

Comando W en Linux

Al mando en Linux

Comando Df en Linux