2013-07-10 42 views
5

Vì vậy, tôi cuối cùng đã nhận được nginx + uWSGI chạy thành công cho Django tôi cài đặtlàm thế nào để giết chết quá trình uWSGI

tuy nhiên vấn đề tôi đang gặp bây giờ là khi tôi có thay đổi vào mã tôi cần phải khởi động lại quá trình uWSGI để xem thay đổi của tôi

tôi cảm thấy như tôi đang chạy các lệnh chính xác ở đây (tôi rất mới để linux cũng như btw):

uwsgi --stop /var/run/uwsgi.pid 
uwsgi --reload /var/run/uwsgi.pid 

tôi nhận được không có lỗi khi tôi chạy các lệnh này tuy nhiên mã cũ của tôi vẫn là những gì tải

Tôi cũng biết nó không phải là một vấn đề mã hóa vì tôi chạy ứng dụng django của tôi trong máy chủ phát triển của nó và mọi thứ chạy tốt

Trả lời

4

Cách được khuyến nghị để nạp lại dữ liệu ứng dụng là sử dụng tùy chọn --touch-reload. Cú pháp mẫu trên tiền phạt .ini là:

touch-reload /var/run/uwsgi/app/myapp/reload 

Tên ứng dụng của bạn là myapp. /var/run/uwsgi/app là nơi được đề xuất cho các tệp như vậy (có thể ở bất kỳ đâu). Tệp reload là tệp trống có dấu thời gian được uwsgi xem, bất cứ khi nào thay đổi (bằng, ví dụ: sử dụng touch) uWSGI phát hiện thay đổi đó và khởi động lại phiên bản ứng dụng uWSGI tương ứng.

Vì vậy, bất cứ khi nào bạn cập nhật mã, bạn nên chạm vào tệp để cập nhật phiên bản trong ứng dụng của bộ nhớ. Ví dụ, trên bash:

sudo touch /var/run/uwsgi/app/myapp/reload 

Note --reload là một lựa chọn không có giấy tờ trên phiên bản uWSGI hiện hành.

+0

khi bạn nói mẫu trên tệp .ini mà bạn có nghĩa là đặt dòng tải lại chạm vào trong tệp ini? và cấu trúc ứng dụng/myapp đến từ đâu? – tareq

+0

có, dòng này phải được thêm vào tệp uHSSGI .ini tương ứng với ứng dụng của bạn. Nếu bạn sử dụng XML, YAML, JSON, bạn sẽ cần sử dụng đúng cú pháp thay vì tiêu chuẩn ' = ' .ini. Tôi sử dụng để đặt tệp 'touch-reload' trong'/var/run/uwsgi/app/ 'nhưng bạn có thể đặt nó ở bất kỳ đâu thuận tiện cho bạn, chẳng hạn như thư mục chính của bạn. – flaviodesousa

+0

Tệp cảm ứng tải lại bạn tham chiếu là gì bây giờ ??? Hiện tại, tôi đang nghĩ đến file ini của mình 'touch-reload/path/to/my/ini/file', tuy nhiên điều đó không có ý nghĩa gì cả, tôi giả sử rằng tôi cần phải tạo một tập tin tải lại cảm ứng? tôi phải làm gì trong tập tin đó? – tareq

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