감독자 프로그램 구성에서 기본 경로에 추가하는 방법을 알 수없는 것 같습니다.
경로를 재설정 할 수 있습니다.
environment=PATH="/home/site/environments/master/bin"
그러나 내가 시도 할 때 :
environment=PATH="/home/site/environments/master/bin:$PATH"
나는 감독자가 평가하지 않는 것을 본다 $PATH
.
Google은 어떤 이유로 든 큰 도움이되지 않았습니다.이를 필요로하는 첫 번째 사람이라고 믿을 수 없습니다.
감독관은 이것을 지원해야합니다. 그것이 무엇인지 아십니까?
1
@ascobol nope, 지금 필요한 경로를 하드 코딩했습니다.
—
Prody
supervisord
구성 파일에서 변수를 사전 처리하기 위해 쉘을 실행하지 마십시오. 따라서 쉘 표현식을 사용하여 변수를 확장 할 수 없습니다. 할 수있는 패치가 %($PATH)
있지만 2011 년 메일 링리스트에서 논의되었지만 AFAIK는 여전히 메인 라인 소스 트리에 포함되지 않습니다. 임시 해결책으로 환경을 설정하고 인수로 제공된 명령을 실행하는 스크립트를 작성할 수 있습니다. 그럼 당신은 단지에서 스크립트 실행 supervisord
등command /usr/local/bin/setup_env_master.sh program_name arguments
쉘 래퍼 솔루션에는 상당한 단점이 있습니다. 수퍼바이저가 INT 또는 KILL을 사용하여 프로세스를 중지하려고하면 신호가 실제 래핑 된 프로그램이 아닌 bash 스크립트에 의해 수신됩니다. 이것은 매달려있는 프로세스로 이어질 수 있습니다.
—
stoiczek
@stoiczek 쉽게 해결할 수있는 문제. bash 스크립트 끝에 exec를 사용하십시오. 명령을 정기적으로 실행하지 마십시오. 그래서
—
CameronNemo
exec server --args
. 항상 시작 작업에서 볼 수 있습니다.