GNU/Linux >> Tutoriels Linux >  >> Linux

Commande de temporisation sous Linux

timeout est un utilitaire de ligne de commande qui exécute une commande spécifiée et la termine si elle est toujours en cours d'exécution après une période de temps donnée. En d'autres termes, timeout permet d'exécuter une commande avec une limite de temps. Le timeout La commande fait partie du package d'utilitaires de base GNU, qui est installé sur presque toutes les distributions Linux.

C'est pratique lorsque vous souhaitez exécuter une commande qui n'a pas d'option de délai d'attente intégrée.

Dans cet article, nous allons vous expliquer comment utiliser le timeout Linux commande.

Comment utiliser le timeout Commande #

La syntaxe du timeout commande est la suivante :

timeout [OPTIONS] DURATION COMMAND [ARG]…

La DURATION peut être un entier positif ou un nombre à virgule flottante, suivi d'un suffixe d'unité facultatif :

  • s - secondes (par défaut)
  • m - minutes
  • h - heures
  • d - jours

Lorsqu'aucune unité n'est utilisée, la valeur par défaut est les secondes. Si la durée est définie sur zéro, le timeout associé est désactivé.

Les options de la commande doivent être fournies avant les arguments.

Voici quelques exemples de base montrant comment utiliser le timeout commande :

  • Terminer une commande après cinq secondes :

    timeout 5 ping 8.8.8.8
  • Terminer une commande après cinq minutes :

    timeout 5m ping 8.8.8.8
  • Terminer une commande après une minute et six secondes :

    timeout 1.1m ping 8.8.8.8

Si vous souhaitez exécuter une commande nécessitant des privilèges élevés tels que tcpdump , ajoutez sudo avant timeout :

sudo timeout 300 tcpdump -n -w data.pcap

Envoi du numéro de signal spécifique

Si aucun signal n'est donné, timeout envoie le SIGTERM signal à la commande gérée lorsque le temps limite est atteint. Vous pouvez spécifier le signal à envoyer en utilisant le -s (--signal ).

Par exemple, pour envoyer SIGKILL au ping commande après une minute, vous utiliseriez :

sudo timeout -s SIGKILL ping 8.8.8.8

Vous pouvez spécifier le signal par son nom, tel que SIGKILL , ou son numéro comme 9 . La commande suivante est identique à la précédente :

sudo timeout -s 9 ping 8.8.8.8

Pour obtenir une liste de tous les signaux disponibles, utilisez le kill -l commande :

kill -l

Tuer les processus bloqués #

SIGTERM , le signal par défaut envoyé lorsque le délai est dépassé, peut être intercepté ou ignoré par certains processus. Dans ces situations, le processus continue de s'exécuter après l'envoi du signal de fin.

Pour vous assurer que la commande surveillée est tuée, utilisez le -k (--kill-after ) option suivie d'une période de temps. Lorsque cette option est utilisée après que le délai donné est atteint, le timeout la commande envoie le SIGKILL signal au programme géré qui ne peut pas être intercepté ou ignoré.

Dans l'exemple suivant, timeout exécute la commande pendant une minute, et si elle n'est pas terminée, elle la tuera au bout de dix secondes :

sudo timeout -k 10 1m ping 8.8.8.8

timeout -k "./test.sh"

tué une fois le délai imparti écoulé

Conserver le statut de sortie #

timeout renvoie 124 lorsque le délai est atteint. Sinon, il renvoie l'état de sortie de la commande gérée.

Pour renvoyer l'état de sortie de la commande même lorsque le délai est atteint, utilisez le --preserve-status choix :

timeout --preserve-status 5 ping 8.8.8.8

Exécution en premier plan #

Par défaut, timeout exécute la commande gérée en arrière-plan. Si vous souhaitez exécuter la commande au premier plan, utilisez le --foreground choix :

timeout --foreground 5m ./script.sh

Cette option est utile lorsque vous souhaitez exécuter une commande interactive qui nécessite une entrée de l'utilisateur.

Conclusion #

Le timeout commande est utilisée pour exécuter une commande donnée avec une limite de temps.

timeout est une commande simple qui n'a pas beaucoup d'options. En règle générale, vous invoquerez timeout uniquement avec deux arguments, la durée et la commande gérée.

Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.


Linux
  1. Commande Linux ifconfig

  2. Commande Linux mv

  3. Linux du command

  4. Commande IP Linux

  5. Commande cd Linux

Commande gratuite sous Linux

Commande Sudo sous Linux

Localiser la commande sous Linux

Commande W sous Linux

À la commande sous Linux

Commande Df sous Linux