GNU/Linux >> Tutoriels Linux >  >> Linux

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

Parfois, lorsque vous exécutez une commande sous Linux, vous souhaiterez peut-être l'exécuter pendant une durée définie. Il existe un utilitaire de ligne de commande - timeout - qui est spécifiquement développé à cet effet. Dans cet article, nous aborderons les bases de cette commande à l'aide d'exemples faciles à comprendre.

Mais avant cela, il convient de mentionner que tous les exemples de ce didacticiel ont été testés sur une machine Ubuntu 18.04 LTS.

Commande de temporisation Linux

Comme son nom l'indique, la commande timeout sous Linux vous permet d'exécuter une commande avec une limite de temps. Voici sa syntaxe :

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

Et voici comment la page de manuel de l'outil l'explique :

timeout - run a command with a time limit
Start COMMAND, and kill it if still running after DURATION

Voici quelques exemples de style Q&A qui devraient vous donner une meilleure idée du fonctionnement de cet outil.

Q1. Comment utiliser la commande timeout ?

L'utilisation de base est assez simple - exécutez simplement "timeout" en spécifiant en entrée une valeur de délai d'attente (considérée en secondes) ainsi que la commande que vous souhaitez exécuter.

Par exemple, si vous souhaitez expirer une commande ping après 5 secondes, voici comment vous pouvez utiliser le délai d'expiration dans ce cas.

timeout 5 ping google.com

Q2. Comment obtenir le statut de sortie de la commande en sortie ?

Par défaut, si la commande timeout réussit, elle renvoie 124 comme état de sortie. Voici un exemple :

Dans le premier cas, j'ai laissé la commande timeout s'exécuter avec succès et, comme vous pouvez le voir, l'état de sortie était de 124. Cependant, lors de la deuxième exécution, j'ai tué la commande avec force en utilisant Ctrl+C, et dans ce cas, l'état de sortie était 0.

Mais si vous souhaitez que timeout renvoie l'état de la commande d'entrée même si timeout s'exécute avec succès, vous devrez utiliser l'option de ligne de commande --preserve-status.

Par exemple :

timeout --preserve-status 5 ping google.com

Q3. Comment modifier le délai d'expiration du signal envoyé ?

Inutile de deviner que timeout fonctionne en envoyant un signal à la commande d'entrée pour que cette dernière arrête de s'exécuter à l'approche de l'échéance. Par défaut, SIGTERM est utilisé par la commande.

Cependant, si vous le souhaitez, vous pouvez modifier le signal envoyé par timeout. Pour cela, vous devrez utiliser l'option de ligne de commande -s et spécifier en entrée le signal que vous souhaitez que le délai d'attente envoie.

Par exemple :

timeout -s SIGKILL [COMMAND]

Pour récupérer une liste des signaux disponibles que vous pouvez envoyer, exécutez la commande suivante :

kill -l

Q4. Comment faire en sorte que le délai d'attente envoie automatiquement le signal KILL ?

Parfois, vous pouvez rencontrer une commande d'entrée qui continue de s'exécuter même après que le délai d'attente ait envoyé le signal initial. Pour de tels cas, timeout offre une option '--kill-after'.

Voici comment la page de manuel l'explique :

-k, --kill-after=DURATION

              also send a KILL signal if COMMAND is still running

              this long after the initial signal was sent

Donc, comme vous pouvez le voir, vous devez spécifier une durée pour que le délai d'attente sache après combien de temps ce signal doit être envoyé.

Conclusion

Selon le type de travail que vous effectuez, la commande timeout peut s'avérer être un outil très pratique. Ici, dans ce tutoriel, nous avons discuté de la majorité des options offertes par cet utilitaire. Une fois que vous avez fini de les pratiquer, vous pouvez en savoir plus sur le délai d'attente en vous rendant sur sa page de manuel.


Linux
  1. La commande Linux cksum expliquée pour les débutants (avec des exemples)

  2. Commande Linux wc expliquée pour les débutants (6 exemples)

  3. Explication de la commande Linux unexpand pour les débutants (avec exemples)

  4. Commande de sortie Linux expliquée pour les débutants (avec exemples)

  5. Explication de la commande Linux objdump pour les débutants (7 exemples)

Commande Linux cut expliquée pour les débutants (avec exemples)

Commande de disponibilité Linux expliquée pour les débutants avec des exemples

Explication de la commande Linux dd pour les débutants (8 exemples)

Tutoriel de commande Linux tr pour les débutants (avec exemples)

Explication de la commande Linux mv pour les débutants (8 exemples)

Commande d'hôte Linux expliquée pour les débutants (8 exemples)