Duplicate possible:
script Bash qui tue un processus enfant après un délai donné
Existe-t-il un moyen d'écrire un script Shell pour exécuter une commande donnée pendant 15 secondes, puis de supprimer la commande?
J'ai essayé de dormir, d'attendre et de cingler, mais peut-être que je les utilise mal.
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 solution alternative publiée par @ArjunShankar. Sur cette base, vous pouvez encapsuler ce code de plaque chauffante et créer votre propre script portable timeout
ou votre petite application C qui fait la même chose.
Certaines machines n'ont pas timeout
installé/disponible. Dans ce cas, vous pouvez utiliser le processus en arrière-plan. son PID est alors enregistré 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 est mentionné plus d'une solution pour y arriver.