Comment lancer un processus avec timeout en Bash? [dupliquer]
Double Possible:
script Bash qui tue un enfant après un délai d'attente
Est-il un moyen d'écrire un script shell qui exécute une certaine commande pendant 15 secondes, puis tuer la commande?
j'ai essayé le sommeil, l'attente et le ping mais peut-être que je les utilise mal.
2 réponses
utilisez la commande timeout
:
timeout 15s command
Note: sur certains systèmes vous devez installer coreutils
, sur d'autres il est manquant ou a des arguments de ligne de commande différents. Voir une solution alternative Postée par @ArjunShankar . Basé sur elle, vous pouvez encapsuler ce code de chaudière-plaque et de créer votre propre portable timeout
script ou petite application C qui fait la même chose.
certaines machines n'ont pas timeout
installé/disponible. Dans ce cas, vous pouvez background le processus; son PID est alors stocké comme $!
; puis dormir pour la quantité de temps nécessaire, puis le tuer:
some_command arg1 arg2 &
TASK_PID=$!
sleep 15
kill $TASK_PID
À cette URL je trouve qu'il n'y sont mentionnés, en plus de l'une des solutions pour ce faire.