Ho uno script python che utilizza il multiprocessing. Mi piace eseguire il debug dei miei script in Eclipse, ma con il multiprocessing, devo sempre uccidere manualmente i processi figli generati dopo il termine. Come posso prendere l'azione di terminazione Eclipse nello script in modo che possa essere ripulita?Come catturare la terminazione di esecuzione da Eclipse pydev?
risposta
Catturando la terminazione di eclissi, intendi l'evento di qualcuno che preme il pulsante "Termina" durante il debug? Se è così, non penso che ci sia un'eccezione o un evento che puoi cogliere.
Ecco alcune cose che ho provato sul lato che non funziona: 1. Aggiunta di gestori di segnale per SIGTERM, SIGNTEAL e SIGINT, ma senza fortuna. 2. prova il modulo atexit, funziona solo con la normale terminazione del programma.
La ragione per cui questo non funziona è che eclipse insiste nell'invio di SIGKILL invece di SIGTERM, che interromperà l'applicazione senza darti la possibilità di gestirla, vedi anche http://stackoverflow.com/questions/677531/is-it -possibile-per-eclisse-to-terminate-dolcemente-invece-di-using-SIGKILL –
sei riuscito a risolvere questo ?? qualsiasi lavoro in giro? – gsagrawal