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.

nikhil
fuente

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 ;-))

Stéphane Gimenez
fuente
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