Назад | Перейти на главную страницу

Настройка Supervisor на AWS AMI Linux

Я пытаюсь заставить руководителя работать, чтобы моя система очередей всегда работала.

Вот шаги, которые я предпринял и собрал из разных источников: (Запуск от имени пользователя root или суперпользователя)

  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
    

Я просто потратил на это пару часов, пытаясь заставить Supervisor и Amazon Linux AMI работать нормально. У меня были именно те симптомы, о которых вы говорили.

Некоторые причуды:

  • давай и включай -c /etc/supervisord.conf (или как бы там ни было) на любом supervisord или supervisorctl команда и убедитесь, что вы запускаете каждый раз от одного и того же пользователя.
  • в твоем /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 и sudo /usr/local/bin/supervisorctl -c /etc/supervisord.conf затем avail, reload, update и т.д. для обновления (вместо того, чтобы редактировать .ebextensions и каждый раз нажимать на эластичный beanstalk)

чтобы супервизор работал как услуга, вам понадобится /etc/init.d/supervisord файл. я использовал https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec с модами, соответствующими пути, по которому easy_install помещает двоичные файлы в (/usr/local/bin/) и найти pid и логины /var/run/ и /var/log/