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:
- Exécutez des commandes Linux à l'aide de l'outil de délai d'attente
- 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 minutesh
représentant les heuresd
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.