감독자 : $ PATH에 추가하는 방법


23

감독자 프로그램 구성에서 기본 경로에 추가하는 방법을 알 수없는 것 같습니다.

경로를 재설정 할 수 있습니다.

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

그러나 내가 시도 할 때 :

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

나는 감독자가 평가하지 않는 것을 본다 $PATH.

Google은 어떤 이유로 든 큰 도움이되지 않았습니다.이를 필요로하는 첫 번째 사람이라고 믿을 수 없습니다.

감독관은 이것을 지원해야합니다. 그것이 무엇인지 아십니까?


1
@ascobol nope, 지금 필요한 경로를 하드 코딩했습니다.
Prody

2
supervisord구성 파일에서 변수를 사전 처리하기 위해 쉘을 실행하지 마십시오. 따라서 쉘 표현식을 사용하여 변수를 확장 할 수 없습니다. 할 수있는 패치가 %($PATH)있지만 2011 년 메일 링리스트에서 논의되었지만 AFAIK는 여전히 메인 라인 소스 트리에 포함되지 않습니다. 임시 해결책으로 환경을 설정하고 인수로 제공된 명령을 실행하는 스크립트를 작성할 수 있습니다. 그럼 당신은 단지에서 스크립트 실행 supervisordcommand /usr/local/bin/setup_env_master.sh program_name arguments
드미트리 Vasilyanov

1
쉘 래퍼 솔루션에는 상당한 단점이 있습니다. 수퍼바이저가 INT 또는 KILL을 사용하여 프로세스를 중지하려고하면 신호가 실제 래핑 된 프로그램이 아닌 bash 스크립트에 의해 수신됩니다. 이것은 매달려있는 프로세스로 이어질 수 있습니다.
stoiczek

@stoiczek 쉽게 해결할 수있는 문제. bash 스크립트 끝에 exec를 사용하십시오. 명령을 정기적으로 실행하지 마십시오. 그래서 exec server --args. 항상 시작 작업에서 볼 수 있습니다.
CameronNemo

답변:


17

이 기능은 최근 수퍼바이저에 추가되었습니다

environment = PATH = "/ home / site / environments / master / bin : % (ENV_PATH) s"

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

/programming/12900402/supervisor-and-environment-variables참조하십시오.


그러나 아직 (태그) 공개되지 않은 : github.com/Supervisor/supervisor/issues/599를
tersmitten

그것은 어제 태그 된 것 : pypi.python.org/pypi/supervisor
tersmitten

1

설명서를 검토 한 후 Dmitry에 동의합니다.

현재 답변은 다음과 같습니다. 감독자가이 디렉토리를 수행하지 않지만 랩퍼 스크립트를 작성하면 도움이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.