Настройка супервизора на AWS AMI Linux

Настройка супервизора на 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
    

решение1

чтобы запустить supervisord как службу, вам нужен файл /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 играть хорошо. У меня были именно те симптомы, которые вы упомянули.

Некоторые странности:

  • идите вперед и включите -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супервайзера как сервис - подозреваю, это потому, что у меня нет сценария upstart, который я видел в нескольких местах. Не уверен, что он мне нужен на данный момент.

Некоторые методы отладки, которые я использовал:

  • ps aux | grep superчтобы увидеть, работает ли он
  • sudo vim для редактирования /etc/supervisord.conf, а sudo /usr/local/bin/supervisorctl -c /etc/supervisord.confзатем avail, reloadи updateт.д. для обновления (вместо редактирования .ebextensions и отправки в elastic beanstalk каждый раз)

Связанный контент