Exécuter une commande pendant un temps spécifié, puis abandonner si le temps dépasse

47

Je veux savoir comment je peux exécuter une commande pendant un temps spécifié, disons, une minute et si elle ne termine pas l'exécution, je devrais pouvoir l'arrêter.

nikhil
la source

Réponses:

62

Utiliser timeout:

NAME
       timeout - run a command with a time limit

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

(Juste au cas où, si vous n'avez pas cette commande ou si vous devez être compatible avec de très vieux shells et avoir plusieurs autres exigences très spécifiques… jetez un coup d'œil à cette question ;-))

Stéphane Gimenez
la source
1
Parfait, merci de vous connecter à cette question. Je n'ai pas eu de temps mort sur mon système mais je le fais maintenant. Juste une note de côté, le délai d'attente est-il associé à la majorité des distributions Linux?
nikhil
1
Plutôt cool. vous pouvez faire quelque chose comme ceci: for i in `seq 0 3`; do timeout 2 ethtool -p eth$i; done;faire clignoter les LED sur les NIC
user1527227
1
Quelle commande sexy. Merci de l'avoir signalé, je ne le savais pas.
Bruno Bieri