En shell on aimerait parfois faire tourner une commande mais se prémunir qu'elle ne dure trop longtemps.

Dans ces cas là il existe la commande timeout.

Elle prend comme argument le nombre de secondes maximum et pour le reste la commande habituelle à lancer avec elle même ses propres arguments.

Le code de retour sera 124 si la commande est tuée par le timeout (si trop longue) sinon il sera identique à ce que la commande principal retournera.

 

Quelques exemple :

# timeout 5 ping www.google.fr

# timeout 10 ./ma_super_commande_qui_ne_doit_pas_depasser_10_secondes.sh

# timeout 9 sleep 8  # celle-ci devrait normalement toujours bien se terminer ;)

 

Si l'on veut jouer avec les codes de retour :

# timeout 2 sleep 4
# echo $?
124

# timeout 4 true
# echo $?
0


# timeout 4 false
# echo $?
1

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :