Limites de ressources sous Windows?

Quels sont les équivalents Windows des mécanismes de limitation des ressources exposés sur les systèmes Unix par le module de resource Python et POSIX setrlimit ?

Plus précisément, je limite le temps processeur pour un processus enfant à plusieurs secondes. S’il ne s’est pas terminé dans la contrainte, il est terminé.

À mon avis, il n’existe pas de moyen portable d’obtenir des informations sur la quantité de temps processeur utilisée par un processus enfant en Python. Mais ce que fait le module de subprocess (en supposant que vous démarriez l’enfant avec subprocess.Popen , ce qui est recommandé), vous obtenez l’ID de processus du processus enfant dans Popen.pid . Ce que vous pouvez faire sur Windows, c’est d’exécuter la liste des tasklist (voir manuel ) en utilisant subprocess.check_output plusieurs resockets et d’extraire les informations sur le subprocess.check_output enfant de sa sortie, en utilisant le PID comme filtre.

Dès que le processus fils a suffisamment de temps processeur et si vous avez utilisé subprocess.Popen() pour démarrer le processus enfant, vous pouvez utiliser la méthode Popen.kill pour le tuer.

Mais je pense qu’il serait plus facile de tuer le processus enfant après un nombre spécifié de secondes de temps mural en utilisant une timer. Parce que si le processus enfant se bloque sans utiliser le temps CPU (pour quelque raison que ce soit), votre programme python qui attend qu’il consum du temps processeur fait de même.