2012-01-11 6 views
23

çalışan program. SIGINT'ten sonra çalışan programda temizleme kodu var, bu yüzden Eclipse'in "Sonlandırma" butonlarına basmak işe yaramaz (sanırım SIGKILL'i gönderirler). Konsolda CTRL + C yazarak da çalışmaz.gönderme SIGINT (Ctrl-C) Eclipse bir çalışma yapılandırma kurulumu ve bu programa SIGINT (<kbd>Ctrl</kbd> + <kbd>C</kbd>) göndermek gerekir Eclipse Konsolundan

SIGINT'i Eclipse Console içinde çalışan bir işlem için nasıl gönderirim?

(FWIW bir Twisted deamonuyla ve sadece SIGINT üzerinde oluştuğu, doğru kapatmak için Twisted ihtiyaç am) böyle ps gibi bir yardımcı program ile işlemi belirleyebilirse

cevap

7

, bunu bir göndermek için öldürmek kullanabilirsiniz SIGINT. Program muhtemelen bir tutulma süreci olacak.

kill -s INT <pid> 
+1

Şu anda 'kill -INT \' pgrep python \ '' komutunu kullanıyorum, bu yüzden pids bulmak için uğraşmak zorunda kalmama rağmen, bu bile hızlı kod/hata ayıklama döngüleri için biraz hantal. – vsekhar

+0

Tüm python işlemlerinin öldürülmesine aldırmazsanız, bunu 'pkill -INT python''a kısaltabilirsiniz. – jordanm

+1

Bu nedenle, sorunun amacı, kill + pgrep veya pkill'in künt enstrümanlar olmasıdır (ve aslında diğer python işlemlerini çalıştıranlar vardır. Daha ince taneli bir yaklaşım bekliyorum ve Eclipse ile CTRL-C mümkün olması gerektiği gibi görünüyor. – vsekhar

1

tek bir hat üzerinden komut gönderebilir:

kill -SIGINT $(ps aux | grep ProgrammName | grep -v grep | awk '{print $2}') 

süreç kimliği alın ve daha Sadece şeyiyle uğruna SIGINT sinyali

+6

Daha kısa: 'pkill -SIGINT -f ProgrammName' –

0

gönderin:

Ctrl + Z benim için (Windows'ta) çalışır.