Aller au contenu
Site Communauté

tuer un processus sous condition de temps


beaugerie

Messages recommandés

Posté(e) (modifié)

Bonjour

J'ai lancé un fichier .bat qui m' exécute des commandes séquentielles identiques (plusieurs milliers). Le pb arrive quand un fichier data est corrompu et le programme est bloqué dessus. L'exécutable ne peut pas s'arrêter pour passer au suivant.

J'aimerai mettre une condition de temps pour chaque thread utilisé, par exemple si temps >3mn, alors kill commande.

Comment faire ?

Merci beaucoup ! sinon je dois vérifier toutes les heures mon ordi pour repérer les threads bloqués pour les relancer....un esclave de sa machine...

Modifié par beaugerie
orthographe
Posté(e)

autre possibilité:

tuer tous le (les) processus à intervalles réguliers, par exemple toutes les 2 heures et relancer le processus suivant dans la liste d'attente.

comment faire ?

merci

exemple en multi thread

dossier_1 contient 1000 processus_1 à processus_1000 séquentiels lancés sur le thread_1

dossier_2 contient 1000 processus_1 à processus_1000 séquentiels lancés sur le thread_2

  ....

à H+2, on tue tous les processus en cours processus_x de chaque thread et on relance sur le processus_(x+1) 

Posté(e)

Salut ! :c_happy:

Alors là… Excellente question. Je ne suis pas un expert en batch comme tu peux en trouver sur Zebulon ou même sur ZdS. Alors je viens de chercher un peu et je n'ai rien trouvé d'intéressant.

Mais si tu trouves une piste, je suis intéressé.

Bonne recherche à toi.

Posté(e) (modifié)

 

solution1 : toto est ton executable apprentissage_x est un argument de toto.exe

START /I toto apprentissage_x

TIMEOUT 400 & délai d'attente en secondes avant de lancer la prochaine ligne de commande
TASKKILL /F /IM toto.exe

 

cela marche mais
1- cela te mobilise 1 thread , donc si tu as 20 threads, 10 seront dédiés au calcul et 10 autres à surveiller les 10 qui calculent, ton PC devient réellement le Partie Comuniste....
2- il faut mettre un temps long correspondant au 95ieme percentile des temps de tes calculs, donc en fait tu multiplies par 1.90 ton temps moyens de calcul
ce qui fait au total, ton rendement devient peau de chagrin: 50% de 50% cela fait....25% d'efficacité.
Au total tu as une bécane à 32 coeurs (pas mal quand même) et seulement 8 vont bosser....et les autres surveillent ou sont tués à mi-chemin de leur calcul
3- et en plus, il te faut renommer tous tes toto.exe en toto1.exe, toto2.exe, sinon quand il tue un toto.exe, il tue tous les processus toto.exe

Modifié par beaugerie
orthographe
  • Plusser (+1) 1
Posté(e)

Merci beaucoup !
Et avec moult précisions s'il vous plait ! Just right

En effet, niveau performance, ça n'est pas l'idéal.
Pour ce qui est de ta troisième remarque, il n'est pas possible de récupérer l'ID du processus, puis de le spécifier ensuite dans la commande Taskkill ?

Posté(e)

Il faut rendre à Cesar, je remercie un certain Maxime qui m'as trouvé cette solution.

Mais je recherche de bonnes âmes pour m'aider pour des scripts de ce type: 

copier un fichier depuis mon PC (win10) vers un centre de calcul dont j'ai un accès via ssh. 

Apres toute une nuit de veille pour voir le comportement de différents scenarii, j ai finalement opté de lancer sur un seul thread cette commande. Du coup, je mobilise un thread pour lui, les autres sont libres. J ai mis un délai de 1h entre chaque massacre. Cela relance tout et en moyenne je perds donc (x/2) mn de calcul par thread restant, x étant le temps moyen pour un thread à modéliser un échantillon. C'est ce qu'il y a de plus acceptable.

Quand j'aurai fini avec mes modèles de prédiction, peut être que je me mettrai au bitcoins....pour avoir un retour en investissement de mon garage très très particulier....

  • J'aime 1
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...