Supervisor 학습 기록

4018 단어
방법론
슈퍼 바 이 저 를 배우 기 전에 먼저 슈퍼 바 이 저 와 그 기능 이 무엇 인지 알 아야 한다.supervisor 는 python 으로 개발 한 프로 세 스 관리 도구 입 니 다. 관리 하 는 프로 세 스 나 프로그램 은 daemon 프로 세 스 가 아 닙 니 다. supervisor 는 자동 으로 daemon 프로 세 스 로 설치 하기 때문에 예 를 들 어 supervisor 로 nginx 를 관리 하려 면 설정 이 필요 합 니 다 daemon off.슈퍼 바 이 저 는 현재 웹 응용 에서 매우 광범 위 하 다. 웹 사이트 에서 흔히 볼 수 있 는 배치 방법: django + uwsgi + nginx + 슈퍼 바 이 저.
질문
현재 슈퍼 바 이 저 는 python 2. x 만 지원 하기 때문에 슈퍼 바 이 저 를 설치 할 때 시스템 의 기본 python 버 전 을 python 2. x 로 바 꿉 니 다.python 3 를 관리 하 는 프로그램 이 필요 하 다 면 프로그램 을 시작 하 는 python 편집 기 를 python 3 으로 바 꾸 면 됩 니 다.
관리자 설정
일반적으로 Ubuntu OS 에서 apt-get install supervisor 를 통 해 설치 되면 슈퍼 바 이 저 는 기본적으로 시작 되 고 /etc/supervisor 디 렉 터 리 에서 슈퍼 바 이 저 d. conf 를 자동 으로 생 성 합 니 다.다른 OS 에 차이 가 있 을 수 있 습 니 다. 일반 리 눅 스에 서 부팅 을 설정 하 는 방식 을 참조 하여 슈퍼 바 이 저 부팅 을 설정 할 수 있 습 니 다. 파일 템 플 릿 을 설정 하면 다음 과 같은 방법 으로 생 성 할 수 있 습 니 다.
슈퍼 바 이 저 설정 모드 생 성
echo_supervisord_conf > /etc/supervisor/supervisord.conf

supervisord. conf 설정
슈퍼 visor 의 설정 파일 은 일반적으로 두 개의 큰 블록 으로 나 눌 수 있 습 니 다. 유 니 버 설 부분 과 APP 부분 은 기본적으로 기본 설정 을 사용 하면 됩 니 다. 관리 되 는 모든 프로 세 스 의 설정 은 /etc/supervisor/conf.d 디 렉 터 리 에 놓 고 슈퍼 visord. conf 설정 include conf.d/*.conf 을 통 해
다음은 간단하게 슈퍼 바 이 저 를 통 해 celery 의 대기 열 작업, 정시 작업 및 프로 세 스 설정 을 관리 하 는 모델 입 니 다.
[program:celery_worker]
autorestart = true
autostart = true
stopasgroup = true
command = /home/zaihui/server/env/bin/celery worker --app=core --loglevel=WARN --concurrency=4 --events --queue celery,hi_priority --pidfile=/var/run/celery_worker.pid
directory = /home/zaihui/server/
numprocs = 1
startsecs = 10
stderr_logfile = /var/log/supervisor/celery_error-%(process_num)s.log
stdout_logfile = /var/log/supervisor/celery-%(process_num)s.log
environment =
    AWS_PROD=True,
    PYTHONPATH=/home/zaihui/server/ygg,
    C_FORCE_ROOT=True,
    AWS_ACCESS_KEY_ID="AKIAOIA6TYIGJ2GE7WJQ",
    AWS_SECRET_ACCESS_KEY="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"

[program:celery_beat]
autorestart = true
autostart = true
stopasgroup = true
directory = /home/zaihui/server/
command = /home/zaihui/server/env/bin/celery beat --app=core --loglevel=WARN --pidfile=/var/run/celery_beat.pid
numprocs = 1
startsecs = 10
stdout_logfile = /var/log/supervisor/celery_beat-%(process_num)s.log
stderr_logfile = /var/log/supervisor/celery_beat_error-%(process_num)s.log
environment =
    AWS_PROD=True,
    PYTHONPATH=/home/zaihui/server/ygg,
    C_FORCE_ROOT=True,
    AWS_ACCESS_KEY_ID="AKIAOIA6TYIGJ2GE7WJQ",
    AWS_SECRET_ACCESS_KEY="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"

[program:celery_flower]
autorestart = true
autostart = true
stopasgroup = true
directory = /home/zaihui/server/
command = /home/zaihui/server/env/bin/celery flower --app=core --conf=/etc/supervisor/conf.d/flowerconfig.py --broker_api=http://zaihui:[email protected]:15672/api/
numprocs = 1
startsecs = 10
stdout_logfile = /var/log/supervisor/celery_flower-%(process_num)s.log
stderr_logfile = /var/log/supervisor/celery_flower_error-%(process_num)s.log
environment =
    AWS_PROD=True,
    PYTHONPATH=/home/zaihui/server/ygg,
    C_FORCE_ROOT=True,
    AWS_ACCESS_KEY_ID="AKIAOIA6TYIGJ2GE7WJQ",
    AWS_SECRET_ACCESS_KEY="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"
supervisor , /etc/supervisor/conf.d , /etc/supervisor/supervisord.conf include conf.d/*.conf
슈퍼 바 이 저 서 비 스 를 시작 하거나 닫 습 니 다.
supervisord - c / etc / supervisor / supervisord. conf \ # supervisord - c / etc / supervisor / supervisord. conf shutdown \ # supervisord - c / etc / supervisor / supervisord. conf reload 를 시작 합 니 다 \ # supervisorctl 을 다시 시작 합 니 다 stop all \ # 모든 프로 세 스 를 닫 습 니 다 supervisorctl stop \ # 프로 세 스 를 따로 닫 습 니 다.
docker 에서 슈퍼 visord 사용
응용 프로그램 이 docker 미 러 에 놓 여 용 기 를 통 해 시작 하면 docker 용기 의 시작 명령 은 supervisord -n -c /etc/supervisor/supervisord.conf 일 것 입 니 다.

좋은 웹페이지 즐겨찾기