2009-03-24 6 views
20

Sto usando Eclipse su Windows, con il plugin PyDev per lo sviluppo Python. Quando uso 'Esegui' per avviare la mia applicazione, genera una nuova istanza di Python (CPython). Quando uso il pulsante 'termina' (quadrato rosso), uccide il processo. Tuttavia, sembra eseguire un SIGKILL, quindi il mio gestore di shutdown non è in grado di eseguire la pulizia.E 'possibile che Eclipse termini con delicatezza invece di usare SIGKILL?

C'è un modo per ottenere Eclipse per inviare un SIGTERM o simulare un interrupt di tastiera (ctrl-c) dalla console Eclipse?

Nota: sono consapevole che esistono altri IDE Python come Komodo o Wing che potrebbero risolvere questo problema, ma non sto cercando di passare a questo.

+1

qualsiasi soluzione/lavoro in giro ?? – gsagrawal

+0

Eclipse non usa SIGKILL. – djechlin

risposta

10

Eclipse utilizza l'API di processo Java che invia il segnale. Questa è un'API nativa e non c'è modo di cambiarla. Suppongo che tu abbia provato a installare anche un gestore per SIGKILL e questo non ha funzionato.

Pertanto, l'unica soluzione sarebbe scrivere un piccolo file batch che elenca i processi e invia SIGTERM a uno di essi. Richiamalo da un prompt dei comandi. Se si utilizza Alt-Tab per passare ad esso, è quasi comodo come farlo da dentro Eclipse.

Oppure scrivere un plug-in per richiamare i file batch.

+3

L'installazione di un gestore per SIGKILL non ha senso, poiché, per definizione, non verrà mai eseguita. SIGTERM chiede a un programma di terminare. SIGKILL fa sì che il sistema operativo interrompa forzatamente un programma senza informarlo in anticipo. – Powerlord

+0

Bemrose: ho indovinato ma ero troppo pigro per cercarlo :) –

Problemi correlati