Dupliquer possible :
script Bash qui tue un processus enfant après un délai donnéExiste-t-il un moyen d'écrire un script shell qui exécuterait une certaine commande pendant 15 secondes, puis tuerait la commande ?
J'ai essayé de dormir, d'attendre et de ping mais peut-être que je les utilise mal.
Réponses
Trop de publicités?Utilisez la commande timeout
:
timeout 15s command
Remarque : sur certains systèmes, vous devez installer coreutils
, sur d'autres, il manque ou a des arguments de ligne de commande différents. Voir une autre solution postée par @ArjunShankar . Sur cette base, vous pouvez encapsuler ce code de plaque de chaudière et créer votre propre script portable timeout
ou petite application C qui fait la même chose.
Certaines machines n'ont pas timeout
installés/disponibles. Dans ce cas, vous pouvez faire l'arrière-plan du processus ; son PID est alors stocké en tant que $!
; puis dormez pendant le temps requis, puis tuez-le :
some_command arg1 arg2 &
TASK_PID=$!
sleep 15
kill $TASK_PID
À cette URL, je trouve qu'il y a mentionné, plus d'une solution pour que cela se produise.