Recherche de site Web

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


Linux est livré avec une multitude de commandes, chaque commande étant unique et utilisée dans des cas spécifiques. L'objectif de Linux est de vous aider à être aussi rapide et efficace que possible. Une propriété d'une commande Linux est la limite de temps. Vous pouvez définir une limite de temps pour n'importe quelle commande de votre choix. Si le délai expire, la commande cesse de s'exécuter.

Dans ce court didacticiel, vous allez apprendre deux méthodes pour utiliser une limite de temps dans vos commandes.

Sur cette page:
  1. Exécutez des commandes Linux à l'aide de l'outil de délai d'attente
  2. Exécuter des commandes Linux à l'aide du programme Timelimit

Exécutez des commandes Linux à l'aide de l'outil de délai d'attente

Linux dispose d'un utilitaire de ligne de commande appelé timeout, qui vous permet d'exécuter une commande avec une limite de temps.

Sa syntaxe est la suivante.

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

Pour utiliser la commande, vous spécifiez une valeur de timeout (en secondes) avec la commande que vous souhaitez exécuter. Par exemple, pour expirer une commande ping après 5 secondes, vous pouvez exécuter la commande suivante.

timeout 5s ping google.com

Vous n'êtes pas obligé de préciser le(s) (s) après le numéro 5. La commande ci-dessous est la même et fonctionnera toujours.

timeout 5 ping google.com

Les autres suffixes incluent :

  • m représentant les minutes
  • h représentant les heures
  • d représentant les jours

Parfois, les commandes peuvent continuer à s'exécuter même après que le délai d'attente ait envoyé le signal initial. Dans de tels cas, vous pouvez utiliser l'option --kill-after.

Voici la syntaxe.

-k, --kill-after=DURATION

Vous devez spécifier une durée pour indiquer au timeout après combien de temps le signal d'arrêt doit être envoyé.

Par exemple, la commande affichée va se terminer après 8 secondes.

timeout 8s tail -f /var/log/syslog

Exécuter des commandes Linux à l'aide du programme Timelimit

Le programme Timelimit exécute une commande donnée puis termine le processus après un temps spécifié en utilisant un signal donné. Il transmet d'abord un signal d'avertissement, puis après un délai d'attente, il envoie le signal d'arrêt.

Contrairement à l'option timeout, Timelimit a plus d'options telles que killsig, warnsig, killtime et temps d'avertissement.

Timelimit peut être trouvé dans les référentiels des systèmes basés sur Debian et pour l'installer, utilisez la commande suivante.

sudo apt install timelimit

Pour les systèmes basés sur Arch, vous pouvez l'installer à l'aide des programmes d'assistance AUR, par exemple Pacaur Pacman et Emballeur.

Pacman -S timelimit
pacaur -S timelimit
packer -S timelimit

Autres distributions Linux, vous pouvez télécharger la source de limitation de temps et l'installer manuellement.

Après l'installation, exécutez la commande suivante et spécifiez l'heure. Dans cet exemple, vous pouvez utiliser 10 secondes.

timelimit -t10 tail -f /var/log/pacman.log

Notez que si vous ne spécifiez pas d'arguments, Timelimit utilise les valeurs par défaut : warntime=3600 secondes, warnsig=15, killtime =120 et killsig=9.

Conclusion

Dans ce guide, vous avez appris à exécuter des commandes avec une limite de temps sous Linux. En révision, vous pouvez utiliser la commande Timeout ou l'utilitaire Timelimit.

La commande Timeout est facile à utiliser, mais l'utilitaire Timelimit est un peu compliqué mais propose plus d'options. Vous pouvez choisir l'option la plus adaptée en fonction de vos besoins.