Supervisor-Setup auf AWS AMI Linux

Supervisor-Setup auf AWS AMI Linux

Ich versuche, den Supervisor dazu zu bringen, sicherzustellen, dass mein Warteschlangensystem immer läuft.

Hier sind die Schritte, die ich unternommen habe und die ich aus verschiedenen Quellen zusammengetragen habe: (Als Root oder Superuser ausgeführt)

  1. Lief:

    # easy_install supervisor
    # echo_supervisord_conf > /etc/supervisord.conf
    # vi supervisord.conf
    
  2. Folgendes am Ende der Datei eingefügt:

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

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

    Es wird nichts angezeigt.

  4. Lief:

    # service supervisord reload
    supervisord: unrecognized service
    

Antwort1

um supervisord als Dienst laufen zu lassen, benötigen Sie eine /etc/init.d/supervisordDatei. Ich habehttps://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec mit Mods, um den Pfad anzupassen, in dem easy_install die Binärdateien abgelegt hat ( /usr/local/bin/), und um die PID und die Anmeldungen zu finden /var/run/und/var/log/

Antwort2

Ich habe gerade ein paar Stunden damit verbracht, Supervisor und Amazon Linux AMI dazu zu bringen, gut zusammenzuarbeiten. Ich habe genau die Symptome festgestellt, die Sie beschrieben haben.

Einige Macken:

  • Fahren Sie fort und schließen Sie -c /etc/supervisord.conf(oder was auch immer Ihr Pfad ist) in jeden beliebigen supervisordoder supervisorctlBefehl ein und stellen Sie sicher, dass Sie es jedes Mal vom selben Benutzer aus ausführen.
  • Achten Sie beim Anhängen des Befehls in Ihrem /etc/supervisord.confdarauf, dem Namen das Präfix „program:“ voranzustellen, etwa so:

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

Nachdem ich das oben Genannte ausgeführt hatte, erkannte supervisorctl ENDLICH den Warteschlangenprozess/das Warteschlangenprogramm.

Ich habe sudo service supervisor restartSupervisor immer noch nicht als Dienst erkannt – ich vermute, das liegt daran, dass ich kein Upstart-Skript habe, das an einigen Stellen erwähnt wurde. Ich bin mir nicht sicher, ob ich an diesem Punkt eines brauche.

Einige von mir verwendete Debugging-Techniken:

  • ps aux | grep superum zu sehen, ob es läuft
  • sudo vim zum Bearbeiten /etc/supervisord.confund sudo /usr/local/bin/supervisorctl -c /etc/supervisord.confdann avail, reload, updateusw. zum Aktualisieren (anstatt jedes Mal .ebextensions zu bearbeiten und zu Elastic Beanstalk zu pushen)

verwandte Informationen