GNU/Linux >> Tutoriels Linux >  >> Linux

Mettez une minuterie sur vos commandes en cours d'exécution avec la commande Timeout sous Linux

Avec la commande timeout, vous pouvez définir une limite de temps pour l'exécution d'autres commandes et programmes. Si le programme s'exécute plus longtemps que la limite définie, le délai d'attente le tue.

Ça sonne bien, non ? Voyons comment utiliser cette commande.

Utilisation de la commande timeout sous Linux

Voici la syntaxe de la commande timeout :

timeout [options] seconds command

Comme vous pouvez le voir, le temps est toujours défini en secondes ici.

Prenons un exemple avec la commande sleep. La commande de sommeil "dort" essentiellement jusqu'au temps imparti. Ce qui signifie qu'il attend juste ce nombre de secondes.

timeout 4 sleep 10

Donc, si j'utilise sleep 10, le shell attend 10 secondes. Mais si je mets un délai d'attente de 4 secondes, la commande sleep qui devait s'exécuter pendant 10 secondes se termine en seulement 4 secondes.

Par défaut, la commande timeout envoie SIGTERM pour tuer poliment le programme en cours d'exécution. Vous pouvez envoyer un autre signal en utilisant l'option -s.

Vous pouvez voir tous les signaux kill sous Linux avec la commande kill -l. Supposons que vous souhaitiez envoyer le signal SIGKILL (kill -9) au lieu du signal par défaut, SIGTERM. Vous pouvez utiliser quelque chose comme ceci :

timeout -s SIGKILL 3 sleep 30

Vous pouvez également utiliser KILL ou 9 (le numéro de SIGKILL indiqué dans kill -l) au lieu de SIGKILL.

Dur tuer un programme n'est pas une bonne chose à faire. Mais un programme peut ignorer le SIGTERM.

Une meilleure façon de gérer est d'envoyer le signal d'arrêt uniquement lorsque votre demande d'arrêt initiale est ignorée par le programme en cours d'exécution.

Donc, disons que vous voulez exécuter un programme pas plus de 5 secondes. Mais si le programme en cours d'exécution refuse de s'arrêter, vous envoyez le signal d'arrêt 3 secondes après avoir envoyé le SIGTERM par défaut. Voici ce que vous pouvez utiliser :

timeout -k 3 5 program

Cela signifie que votre programme ne durera pas plus de 8 secondes. Vous pouvez utiliser la commande time pour vérifier combien de temps le programme a réellement fonctionné.

Existe-t-il une utilisation pratique de la commande timeout ?

Cela ressemble à l'une de ces commandes Linux obscures que vous n'utiliserez peut-être pas tous les jours. Cela pourrait cependant être utile dans certaines situations particulières.

Par exemple, si vous avez commencé à jouer à un jeu de terminal pour rafraîchir un peu votre humeur, mais que vous avez perdu la notion du temps et que vous avez continué à jouer bien plus que le temps souhaité.

La commande timeout est utile dans de tels cas.

Restez à l'écoute pour en savoir plus sur les commandes Linux. Abonnez-vous à la newsletter pour recevoir régulièrement des trucs et astuces.


Linux
  1. Regardez les commandes et les tâches avec la commande Linux watch

  2. Commande JQ sous Linux avec exemples

  3. Exécution de commandes Linux en arrière-plan et au premier plan

  4. Commandes Linux de A à Z

  5. Commande d'écho Linux

Comment exécuter une commande avec limite de temps (Timeout) sous Linux

Commande Linux ip avec exemples

Commande de temporisation sous Linux

Explication de la commande Linux timeout pour les débutants (avec exemples)

15 Commande Linux ps avec exemples

La commande timer sous Linux