2016-08-14 1 views
0

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

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

+0

Pourquoi voulez-vous vous priver de l'utilisation des paquets qui fonctionnent le mieux? –

+0

@ 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 –

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