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.

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.