2016-02-26 12 views
5

Để điều tra một số vấn đề với tài nguyên hệ thống chưa được phát hành, tôi muốn bắt buộc thu gom rác ngay lập tức trên đã chạy tập lệnh python.Cách bắt buộc thu gom rác Python trên tập lệnh chạy

Điều này có thể bằng cách nào đó không, ví dụ: bằng cách gửi một số loại tín hiệu mà Python sẽ hiểu là một lệnh chạy gc; hoặc bất kỳ cách tương tự nào khác? Cảm ơn.

Tôi đang chạy Python 2.7 trên máy chủ Linux.

+0

Bạn có thể cụ thể hơn không? Giống như một API để gửi tín hiệu đến quy trình và yêu cầu nó làm điều gì đó (gc)? Và trong điều kiện nào bạn muốn thực hiện nó? Thủ công, cron, khi sự kiện nào đó diễn ra, cái gì khác? –

+0

Tôi đang tìm một lệnh thủ công để thực hiện đối với một quy trình Python cụ thể (cụ thể là uwsgi). –

+0

Vâng @TkTech đã đề xuất mô-đun tín hiệu. Tôi có thể thêm RabbitMQ hoặc ZeroMQ, mặc dù bạn phải, giả sử, tạo một chuỗi riêng biệt để nghe tín hiệu. [RabbitMQ] (https://www.rabbitmq.com/) rất đơn giản và dễ hiểu. Cá nhân tôi thích [ZeroMQ] (http://zeromq.org/) nhiều hơn vì nó linh hoạt nhưng khó hơn một chút nếu bạn không có kinh nghiệm trước đó. –

Trả lời

2

Cài đặt trình xử lý tín hiệu sử dụng mô-đun signal tích hợp, sau đó gọi gc.collect() từ trình xử lý tùy chỉnh của bạn.

Nếu bạn không có quyền kiểm soát ứng dụng, bạn sẽ phải sử dụng một cái gì đó như pyringe, điều này sẽ cho phép bạn chèn python tùy ý.

0

Bạn có thể đính kèm tập lệnh python đang chạy với trình gỡ rối và đưa ra bất kỳ lệnh nào bên trong nó, như bên trong bảng điều khiển tương tác. Tôi đã sử dụng trình gỡ rối của PyCharm, nhưng có rất nhiều trong số đó.

Các vấn đề liên quan