AWS AMI Linux의 감독자 설정

AWS AMI Linux의 감독자 설정

나는 내 대기열 시스템이 항상 실행되고 있는지 확인하기 위해 감독관에게 작업을 요청하려고 합니다.

다음은 제가 수행한 단계로, 다양한 소스에서 수집한 내용을 종합한 것입니다. (루트 또는 슈퍼유저로 실행)

  1. 란:

    # easy_install supervisor
    # echo_supervisord_conf > /etc/supervisord.conf
    # vi supervisord.conf
    
  2. 파일 끝에 다음을 붙여넣었습니다.

    command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
    
  3. 란:

    # supervisord -c /etc/supervisord.conf
    # supervisorctl
    supervisor> status
    supervisor>
    

    아무것도 표시되지 않습니다.

  4. 란:

    # service supervisord reload
    supervisord: unrecognized service
    

답변1

감독자를 서비스로 실행하려면 파일이 필요합니다 /etc/init.d/supervisord. 나는 사용했다https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec easy_install이 바이너리를 ()에 넣은 경로와 일치하는 모드를 사용하여 /usr/local/bin/pid를 찾아 로그인 /var/run/하고/var/log/

답변2

저는 감독자와 Amazon Linux AMI가 제대로 작동하도록 하기 위해 몇 시간을 보냈습니다. 말씀하신 증상이 제가 딱 겪고 있었습니다.

몇 가지 단점:

  • 계속해서 any 또는 명령 -c /etc/supervisord.conf에 (또는 경로가 무엇이든) 포함시키고 매번 동일한 사용자로부터 실행하는지 확인하십시오.supervisordsupervisorctl
  • 에서 /etc/supervisord.conf명령을 추가할 때 다음과 같이 이름 앞에 'program:'을 붙여야 합니다.

    [program:queue]
    command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
    

위의 작업을 수행하면 Supervisorctl이 마침내 대기열 프로세스/프로그램을 인식했습니다.

나는 아직도 감독자를 서비스로 인식하지 못했습니다 sudo service supervisor restart. 여러 곳에서 언급한 신생 스크립트가 없기 때문인 것 같습니다. 지금은 필요한지 잘 모르겠습니다.

내가 사용한 일부 디버깅 기술은 다음과 같습니다.

  • ps aux | grep super실행 중인지 확인하기 위해
  • sudo vim을 사용하여 , 등 을 편집 한 다음 /etc/supervisord.conf업데이트 합니다(매번 .ebextensions를 편집하고 Elastic Beanstalk로 푸시하는 대신).sudo /usr/local/bin/supervisorctl -c /etc/supervisord.confavailreloadupdate

관련 정보