Sto usando una libreria di terze parti che avvia vari sottoprocessi. Quando c'è un'eccezione mi piacerebbe uccidere tutti i processi figli. Come posso ottenere un elenco di pid child?Come si elencano tutti i processi figli in python?
risposta
In genere è più sicuro registrare i pid di tutti i processi figli quando li si crea. Non esiste un modo conforme a posix per elencare i PID figli. So che questo può essere fatto con lo strumento PS.
Sì, me l'aspettavo. Il problema è che non sono io a creare i processi, è la libreria di terze parti. Oh bene. Non è un fermo-arresto. – Rowan
posso ottenere un accetto? –
In realtà la tua risposta non è la soluzione. Ho davvero bisogno di sapere come posso ottenere '' psutil.Process'' per darmi ricorsivi '' memory_info'' e '' cpu_percent'', ma il mio richiamo ai sottoprocessi in realtà apre altri sottoprocessi (almeno 4 o 5 livelli) un I non c'è modo di tenere traccia di tutte le PID. – Natim
Usando psutil è possibile ottenere tutti i processi figli (anche processo ricorsivo) cerca https://psutil.readthedocs.io/en/latest/#psutil.Process.children
il tuo link produce lo stato 404, controllalo o vota per favore ( – dyomas
grazie, aggiorna il link –
Non è possibile accedere sempre tutti i sotto-processi in cui sono creati, dal momento che possono a loro volta creare nuovi processi che si non sono a conoscenza di Tuttavia, è abbastanza semplice da usare psutil per trovarli:
import psutil
current_process = psutil.Process()
children = current_process.children(recursive=True)
for child in children:
print('Child pid is {}'.format(child.pid))
Penso che _parent_ e _current_process_ sia lo stesso?) – dyomas
Sì, modificato per correggere. Grazie a @dyomas. –
potrebbe aiutare per dirci il vostro sistema operativo, dal momento che questo sta per essere dipendente dalla piattaforma –
non POSIX aiuto? Presumo che alcune persone vorrebbero conoscere anche la risposta di Windows. – Rowan
Vedi: http://stackoverflow.com/a/4229404/376587 –