2009-03-24 16 views
20

Tôi đang sử dụng Eclipse trên Windows, với plugin PyDev để phát triển Python. Khi tôi sử dụng 'Chạy' để khởi động ứng dụng của mình, nó sẽ sinh ra một cá thể Python (CPython) mới. Khi tôi sử dụng nút 'chấm dứt' (hình vuông màu đỏ), nó sẽ giết chết quá trình. Tuy nhiên, nó xuất hiện để làm một SIGKILL, vì vậy xử lý tắt máy của tôi là không thể làm sạch.Eclipse có thể chấm dứt nhẹ nhàng thay vì sử dụng SIGKILL không?

Có cách nào để đưa Eclipse gửi SIGTERM hoặc mô phỏng ngắt bàn phím (ctrl-c) từ bàn điều khiển Eclipse không?

Lưu ý: Tôi biết có các IDE Python khác như Komodo hoặc Wing có thể giải quyết vấn đề này, nhưng tôi không tìm cách chuyển đổi điều này.

+1

bất kỳ giải pháp/công việc nào về vấn đề này ?? – gsagrawal

+0

Eclipse không sử dụng SIGKILL. – djechlin

Trả lời

10

Eclipse sử dụng API quá trình Java gửi tín hiệu. Đây là một API gốc và không có cách nào để thay đổi điều đó. Tôi cho rằng bạn đã cố gắng cài đặt một trình xử lý cho SIGKILL, và điều đó không hiệu quả.

Do đó, giải pháp duy nhất là viết một tệp lô nhỏ liệt kê các quy trình và gửi SIGTERM đến một trong số chúng. Gọi nó từ một dấu nhắc lệnh. Nếu bạn sử dụng Alt-Tab để chuyển sang nó, nó gần như thoải mái khi thực hiện nó từ bên trong Eclipse.

Hoặc viết plugin để gọi tệp hàng loạt.

+3

Cài đặt một trình xử lý cho SIGKILL là vô nghĩa vì nó sẽ, theo định nghĩa, không bao giờ thực thi. SIGTERM yêu cầu chương trình chấm dứt. SIGKILL làm cho hệ điều hành buộc phải chấm dứt một chương trình mà không cần thông báo trước. – Powerlord

+0

Bemrose: Tôi đoán là nhiều nhưng quá lười để nhìn lên :) –