Giám sát viên: làm thế nào để thêm vào $ PATH


23

Tôi dường như không thể tìm ra cách nối vào đường dẫn mặc định trong cấu hình chương trình giám sát.

Tôi có thể đặt lại đường dẫn:

environment=PATH="/home/site/environments/master/bin"

Nhưng khi tôi thử:

environment=PATH="/home/site/environments/master/bin:$PATH"

Tôi thấy rằng giám sát viên không đánh giá $PATH.

Google không phải là một trợ giúp lớn về điều này vì một số lý do, tôi không thể tin rằng tôi là người đầu tiên cần điều này.

Giám sát phải có hỗ trợ cho việc này, có ý kiến ​​gì không?


1
@ascobol không, tôi đã mã hóa con đường tôi cần, bây giờ
Prody

2
supervisordkhông chạy shell để tiền xử lý biến trong tệp cấu hình, vì vậy bạn không thể sử dụng biểu thức shell để mở rộng biến. Mặc dù có một bản vá cho phép thực hiện %($PATH)và nó đã được thảo luận trong danh sách gửi thư trở lại vào năm 2011 nhưng AFAIK nó vẫn không được đưa vào cây nguồn chính. Như một giải pháp thay thế, bạn có thể tạo một tập lệnh sẽ thiết lập môi trường và thực thi một lệnh được cung cấp trong các đối số. Sau đó, bạn chỉ cần chạy kịch bản từ supervisordtương tựcommand /usr/local/bin/setup_env_master.sh program_name arguments
Dmitry Vasilyanov

1
Có một nhược điểm đáng kể đối với giải pháp trình bao bọc - khi người giám sát sẽ cố gắng dừng quá trình sử dụng INT hoặc KILL, tín hiệu sẽ được nhận bởi tập lệnh bash chứ không phải chương trình gói thực tế. Điều này có thể dẫn (và dẫn trong trường hợp của tôi) đến các quá trình lơ lửng.
stoiczek

@stoiczek vấn đề dễ giải quyết. Sử dụng exec ở cuối tập lệnh bash, không chỉ chạy lệnh thường xuyên. Vì vậy exec server --args. Bạn thấy nó trong các công việc mới nhất luôn luôn thay đổi.
CameronNemo

Câu trả lời:


17

Tính năng này đã được thêm vào Trình giám sát gần đây

môi trường = PATH = "/ nhà / trang web / môi trường / chủ / thùng:% (ENV_PATH) s"

https://github.com/Supervisor/supervisor/blob/master/supervisor/skel/sample.conf#L8

Xem thêm /programming/12900402/supervisor-and-en môi-biến


Nhưng nó chưa được phát hành (được gắn thẻ): github.com/Supervisor/supervisor/issues/599
tersmitten 1/12/2015

Nó đã được gắn thẻ ngày hôm qua: pypi.python.org/pypi/supervisor
tersmitten 2/12/2015

1

Tôi đã xem lại tài liệu và đồng ý với Dmitry.

Câu trả lời hiện tại là: giám sát viên không thực hiện thư mục này, nhưng việc tạo tập lệnh bao bọc sẽ giúp ích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.