Supervisor: PHP 애플리케이션을 위한 강력한 프로세스 제어 시스템
Supervisor는 장기 실행 작업, 대기열 작업자 및 기타 백그라운드 작업을 처리하는 PHP 개발자에게 필수적인 백그라운드 프로세스 관리를 위한 강력한 도구입니다. 이 가이드에서는 Supervisor 설정, PHP 애플리케이션 통합 및 최적의 성능을 위한 포괄적인 구성에 대해 자세히 설명합니다.
Supervisor는 다음과 같은 방법으로 백그라운드 작업을 관리하는 데 탁월합니다.
다음을 사용하는 PHP 프로젝트에 특히 유용합니다.
우분투/데비안:
<code class="language-bash">sudo apt update sudo apt install supervisor</code>
CentOS/RedHat:
<code class="language-bash">sudo yum install epel-release sudo yum install supervisor</code>
설치 후 감독자 활성화 및 활성화:
<code class="language-bash">sudo systemctl start supervisord sudo systemctl enable supervisord</code>
Supervisor는 구성 파일(일반적으로 /etc/supervisor/conf.d/
에 있음)을 활용하여 개별 프로그램을 관리합니다.
기본 구성 예:
다음 콘텐츠로 /etc/supervisor/conf.d/my_php_worker.conf
만들기:
<code class="language-ini">[program:my_php_worker] command=php /path/to/worker.php autostart=true autorestart=true stderr_logfile=/var/log/my_php_worker.err.log stdout_logfile=/var/log/my_php_worker.out.log</code>
--tries=3
옵션(command
지시문 내)은 실패 전 재시작 시도를 3번으로 제한합니다.
구성 적용:
<code class="language-bash">sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start my_php_worker:*</code>
감독자 구성 옵션에 대한 자세한 분석은 다음과 같습니다.
command
: 실행할 명령입니다. 예: command=php /path/to/worker.php
autostart
: Supervisor로 프로그램을 자동으로 시작합니다. 값: true
(기본값), false
. 예: autostart=true
autorestart
: 실패 시 자동으로 다시 시작됩니다. 값: true
, false
, unexpected
. 예: autorestart=unexpected
startsecs
: 프로세스가 시작된 것으로 간주되기 전의 최소 런타임(초)입니다. 기본값: 1. 예: startsecs=5
startretries
: 실패 전 최대 재시작 시도 횟수입니다. 기본값: 3. 예: startretries=5
exitcodes
: 재시작을 방지하는 허용되는 종료 코드입니다. 기본값: 0,2. 예: exitcodes=0,1
stopwaitsecs
: 강제 종료 전 단계적 종료를 기다리는 시간(초)입니다. 기본값: 10. 예: stopwaitsecs=20
redirect_stderr
: 표준 오류를 표준 출력으로 리디렉션합니다. 값: true
, false
(기본값). 예: redirect_stderr=true
stdout_logfile
/ stderr_logfile
: 표준 출력 및 오류에 대한 로그 파일 경로입니다. 예: stdout_logfile=/var/log/my_program.out.log
stdout_logfile_maxbytes
/ stderr_logfile_maxbytes
: 회전 전 최대 로그 파일 크기입니다. 기본값: 50MB. 예: stdout_logfile_maxbytes=10MB
stdout_logfile_backups
/ stderr_logfile_backups
: 보관할 순환된 로그 파일 수입니다. 기본값: 10. 예: stdout_logfile_backups=3
user
: 프로그램을 실행할 시스템 사용자입니다. 예: user=www-data
environment
: 환경 변수. 예: environment=APP_ENV="production",DB_HOST="localhost"
priority
: 시작 순서(낮은 값이 먼저 시작) 기본값: 999. 예: priority=100
directory
: 작업 디렉터리. 예: directory=/path/to/your/app
stopasgroup
: 프로세스와 그 자식에게 중지 신호를 보냅니다. 값: true
, false
(기본값). 예: stopasgroup=true
killasgroup
: stopwaitsecs
이후의 프로세스와 해당 하위 프로세스를 강제로 종료합니다. 값: true
, false
(기본값). 예: killasgroup=true
Laravel 대기열: 안정적인 작업 처리를 위해 queue:work
명령을 관리합니다.
<code class="language-bash">sudo apt update sudo apt install supervisor</code>
예약된 작업: 보다 강력한 예약된 스크립트 실행을 위해 cron을 교체하세요.
<code class="language-bash">sudo yum install epel-release sudo yum install supervisor</code>
장기 실행 스크립트: WebSocket 서버와 같은 영구 스크립트를 관리합니다.
<code class="language-bash">sudo systemctl start supervisord sudo systemctl enable supervisord</code>
시스템 부팅 시 Supervisor가 시작되는지 확인하세요.
감독자 서비스 활성화: sudo systemctl enable supervisord
서비스 시작(필요한 경우): sudo systemctl start supervisord
stdout_logfile_maxbytes
및 stdout_logfile_backups
을 사용하여 로그 회전을 구성합니다.environment
지시문을 활용하여 변수를 관리하세요.Supervisor는 백그라운드 프로세스를 관리하는 PHP 개발자에게 필수적인 도구입니다. 이 가이드는 설치, 구성 및 실제 애플리케이션에 대한 포괄적인 소개를 제공하여 PHP 프로젝트의 안정적이고 효율적인 작업 관리를 보장합니다.
위 내용은 PHP 개발자를 위한 감독자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!