
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)
Lief:
# easy_install supervisor # echo_supervisord_conf > /etc/supervisord.conf # vi supervisord.conf
Folgendes am Ende der Datei eingefügt:
command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
Lief:
# supervisord -c /etc/supervisord.conf # supervisorctl supervisor> status supervisor>
Es wird nichts angezeigt.
Lief:
# service supervisord reload supervisord: unrecognized service
Antwort1
um supervisord als Dienst laufen zu lassen, benötigen Sie eine /etc/init.d/supervisord
Datei. 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 beliebigensupervisord
odersupervisorctl
Befehl 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.conf
darauf, 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 restart
Supervisor 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 super
um zu sehen, ob es läuft- sudo vim zum Bearbeiten
/etc/supervisord.conf
undsudo /usr/local/bin/supervisorctl -c /etc/supervisord.conf
dannavail
,reload
,update
usw. zum Aktualisieren (anstatt jedes Mal .ebextensions zu bearbeiten und zu Elastic Beanstalk zu pushen)