2012-01-29 34 views
5

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?

+0

sei riuscito a risolvere questo ?? qualsiasi lavoro in giro? – gsagrawal

risposta

3

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.

+2

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 –

Problemi correlati