Je rencontre beaucoup de problèmes avec ceci, je veux tuer tous mes processus enfants sans détruire mon propre processus OU tuer tous les processus d'un groupe OU obtenir tous les processus enfants PID ... et tout cela sans utiliser ni bibliothèque subprocess
ou psutil
une quelconque python a une idéeTuer des processus fils, et obtenir des processus fils pid sans psutil ou sous-processus
0
A
Répondre
1
Si vous ne pouvez vraiment pas accéder à ces bibliothèques, vous pouvez utiliser os
si les choses se gâtent.
Par exemple:
my_pid = os.popen('ps --no-headers -C name_of_process').read(5)
if my_pid != "":
my_pid = int(my_pid)
os.kill(my_pid, signal.SIGTERM)
« name_of_process » serait le nom de votre exécutable
Vous pouvez également regarder plus loin les commandes ps
et pkill
.
Remarque: Je suppose que vous utilisez un système d'exploitation Linux
Comment lancez-vous les processus enfants? Vous pouvez toujours les suivre dans une liste, puis appeler 'process.terminate()' ou similaire pour les tuer. L'API de niveau inférieur doit utiliser ['os.kill'] (https://docs.python.org/2/library/os.html#os.kill) mais cela nécessite de connaître le pid et AFAIK la bibliothèque standard n'inclut * pas * de fonctionnalité qui vous permet de rechercher des processus par pid. Donc, si vous ne voulez pas utiliser psutil, vous pouvez toujours en réimplémenter une partie ... – Bakuriu
Pourquoi voulez-vous vous priver de l'utilisation des paquets qui fonctionnent le mieux? –
@ Jean-FrançoisFabre Il n'est pas disponible à mon travail d'environnement, et pas en termes de ne peut pas installer, je suis juste interdit d'utiliser cette bibliothèque, je ne peux pas vraiment l'expliquer, de toute façon je voudrais savoir comment il est fait sans ces bibliothèques Il s'agit plus d'un projet d'apprentissage –