2011-06-30 9 views
45

Tôi đang cố gắng sử dụng người giám sát để quản lý dự án django của tôi chạy gunicorn bên trong virtualenv. file conf của tôi trông như thế này:Giám sát ứng dụng virtualenv django qua người giám sát

[program:diasporamas] 
command=/var/www/django/bin/gunicorn_django 
directory=/var/www/django/django_test 
process_name=%(program_name)s 
user=www-data 
autostart=false 
stdout_logfile=/var/log/gunicorn_diasporamas.log 
stdout_logfile_maxbytes=1MB 
stdout_logfile_backups=2 
stderr_logfile=/var/log/gunicorn_diasporamas_errors.log 
stderr_logfile_maxbytes=1MB 
stderr_logfile_backups=2enter code here 

Vấn đề là, tôi cần người giám sát để khởi động lệnh sau khi nó đã chạy 'nguồn bin/kích hoạt' trong virtualenv tôi. Tôi đã được treo xung quanh google cố gắng tìm một câu trả lời nhưng không tìm thấy bất cứ điều gì.

Lưu ý: Tôi không muốn sử dụng virtualenvwrapper

Bất kỳ trợ giúp nào?

Trả lời

82

Các documentation cho virtualenv kích hoạt kịch bản nói rằng nó chỉ đổi biến môi trường PATH, trong trường hợp này bạn có thể làm:

[program:diasporamas] 
command=/var/www/django/bin/gunicorn_django 
directory=/var/www/django/django_test 
environment=PATH="/var/www/django/bin" 
... 

Kể từ phiên bản 3.2, bạn có thể sử dụng variable expansion để bảo tồn PATH hiện quá:

[program:diasporamas] 
command=/var/www/django/bin/gunicorn_django 
directory=/var/www/django/django_test 
environment=PATH="/var/www/django/bin:%(ENV_PATH)s" 

...

+0

Dường như làm việc :) đã đọc một cái gì đó về quản lý envs nhưng không tìm thấy làm thế nào để áp dụng nó. Thực sự cảm ơn cậu! – Oleiade

+0

@ serge-s @ michał-modzelewski Nhưng điều này không ghi đè biến môi trường 'PATH'? Nếu đúng như vậy, điều đó sẽ không ảnh hưởng đến đường dẫn tìm kiếm cho các tệp nhị phân khác không được tìm thấy trong thư mục đó. Ví dụ, trong Ubuntu Linux, 'PATH' là' /home/user_name/bin:/home/user_name/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'. Nếu một số nhị phân không được tìm thấy trong PATH ghi đè, nó sẽ được tìm kiếm trong các thư mục được chỉ định trong PATH gốc. Có cách nào để thêm vào đường dẫn trong cấu hình giám sát (ví dụ: sử dụng định dạng chuỗi) không? –

+0

@LokeshMeher Câu trả lời này khá cũ. Kể từ đó giám sát viên đã thêm một tùy chọn để sử dụng các biến môi trường trong cấu hình. Tôi đã cập nhật câu trả lời với một phiên bản bao gồm PATH gốc. –