Execute um comando por um tempo especificado e, em seguida, aborte se o tempo exceder

47

Quero saber como posso executar um comando por um tempo especificado, digamos, um minuto e, se não concluir a execução, devo poder interrompê-lo.

Nikhil
fonte

Respostas:

62

Use timeout:

NAME
       timeout - run a command with a time limit

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

(Apenas no caso, se você não possui esse comando ou precisa ser compatível com shells muito muito antigos e tem vários outros requisitos totalmente específicos ... dê uma olhada nessa pergunta ;-))

Stéphane Gimenez
fonte
1
Perfeito, obrigado por vincular a essa pergunta. Eu não tinha tempo limite no meu sistema, mas tenho agora. Apenas em uma nota lateral, o tempo limite está incluído na maioria das distribuições Linux?
Nikhil
1
Muito legal. você pode fazer algo assim: for i in `seq 0 3`; do timeout 2 ethtool -p eth$i; done;para piscar os LEDs nas
placas de
1
Que comando sexy. Obrigado por apontar, não estava ciente disso.
de Bruno Bieri