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.

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.