Programing

감독자 및 환경 변수

lottogame 2020. 11. 27. 07:36
반응형

감독자 및 환경 변수


나는 감독자가 환경 변수를 다루는 방법을 정말로 모른다.

다음은 구성 스 니펫입니다.

[program:htNotificationService]
priority=2
#autostart=true
#autorestart=true
directory=/home/ubuntu/workspace/htFrontEnd/heythat/htsite
command = /usr/bin/python htNotificationService.py -service
stdout_logfile=/var/log/heythat/htNotificationService.log
redirect_stderr=true
environment=PATH=/home/ubuntu/workspace/htFrontEnd/heythat
stopsignal=QUIT

나는 다음을 시도했다 :

environment=PATH=/home/ubuntu/workspace/htFrontEnd/heythat
environment=PYTHONPATH=$PYTHONPATH:/home/ubuntu/workspace/htFrontEnd/heythat
environment=PATH=/home/ubuntu/workspace/htFrontEnd/heythat,PYTHONPATH=$PYTHONPATH:/home/ubuntu/workspace/htFrontEnd/heythat

감독자를 시작하면

htNotificationService: ERROR (abnormal termination)

python 경로를 설정하여 쉘에서 시작할 수 있지만 감독자에서는 시작할 수 없습니다. 로그에서 가져 오기를 찾을 수 없다는 오류가 표시됩니다. 음, 감독자가 일하면 해결 될 것입니다. / etc / environments에 경로가 있습니까?

감독자가 일하지 않는 이유는 무엇입니까?


기존 환경 변수 참조는 % (ENV_VARNAME) s로 수행됩니다.

( https://github.com/Supervisor/supervisor/blob/master/supervisor/skel/sample.conf 참조 )

여러 환경 변수 설정은 쉼표로 구분하여 수행됩니다.

( http://supervisord.org/subprocess.html#subprocess-environment 참조 )

시험:

environment=PYTHONPATH=/opt/mypypath:%(ENV_PYTHONPATH)s,PATH=/opt/mypath:%(ENV_PATH)s

감독자 블록 아래의 .conf 파일에서 모든 환경 키 = 값 쌍을 추가 할 수 있습니다.

[supervisord]
environment=CELERY_BROKER_URL="amqp://guest:guest@127.0.0.1:5672//",FLASK_CONFIG="TESTING"

[program:celeryd]
command=celery worker -A celery --loglevel=info -P gevent -c 1000

변수를 하드 코딩하고 싶지 않지만 os 환경에서 가져오고 싶다면 bash의 1 단계

환경 변수 내보내기

>> sudo export CELERY_BROKER_URL="amqp://guest:guest@127.0.0.1:5672//"

Bash 재 장전

>> . ~/.bashrc

환경 변수가 올바르게 설정되었는지 확인

>> env

이제 읽을 conf 파일을 수정하십시오 - 참고 : env 변수 앞에 ENV_를 추가하십시오.

[supervisord]
environment=CELERY_BROKER_URL="%(ENV_CELERY_BROKER_URL)s",FLASK_CONFIG="%(ENV_FLASK_CONFIG)s"

[program:celeryd]
command=celery worker -A celery --loglevel=info -P gevent -c 1000

이것은 나를 위해 작동합니다. 각 줄 앞의 탭에 유의하십시오.

environment=
    CLOUD_INSTANCE_NAME=media-server-xx-xx-xx-xx,
    CLOUD_APPLICATION=media-server,
    CLOUD_APP_COMPONENT=none,
    CLOUD_ZONE=a,
    CLOUD_REGION=b,
    CLOUD_PRIVATE_IP=none,
    CLOUD_PUBLIC_IP=xx.xx.xx.xx,
    CLOUD_PUBLIC_IPV6=xx.xx.xx.xx.xx.xx,
    CLOUD_PROVIDER=c

If you install supervisor from a package installer, check which Supervisor version you are using. As of August 2016 you will get 3.0b2. If this is the case you will need a newer version of supervisor. You can get it by installing supervisor manually or by using Python's pip. Make sure all the dependencies are met, along with the upstart setup so that supervisord works as a service and starts on system boot.

참고URL : https://stackoverflow.com/questions/12900402/supervisor-and-environment-variables

반응형