Ejecute un comando durante un tiempo específico y luego cancele si el tiempo excede


47

Quiero saber cómo puedo ejecutar un comando por un tiempo específico, digamos, un minuto y si no completa la ejecución, entonces debería poder detenerlo.

Respuestas:


62

Uso timeout:

NAME
       timeout - run a command with a time limit

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

(Por si acaso, si no tiene este comando o si necesita ser compatible con shells muy antiguos y tiene varios otros requisitos completamente específicos ... eche un vistazo a esta pregunta ;-))


1
Perfecto, gracias por vincularte a esa pregunta. No tuve tiempo de espera en mi sistema, pero ahora sí. Solo en una nota al margen, ¿el tiempo de espera se incluye con la mayoría de las distribuciones de Linux?
nikhil

1
Muy genial. puede hacer algo como esto: for i in `seq 0 3`; do timeout 2 ethtool -p eth$i; done;parpadear los LED en las NIC
user1527227

1
Que comando tan sexy. Gracias por señalarlo, no estaba al tanto.
Bruno Bieri
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.