2016-05-24 11 views
6

An diesem Morgen habe ich mein Vorgesetzter Upgrade vonBetreuer 3.3 mit Ubuntu 16.04 Fehlschlagen des Starts

pip install --upgrade supervisor //from 3.2 to 3.3 

Aber danach Verwendung Hinweis es Ausfallstart-Service-Status.

supervisor.service - Supervisor process control system for UNIX 
Loaded: loaded (/lib/systemd/system/supervisor.service; disabled; vendor preset: enabled) 
Active: activating (auto-restart) (Result: exit-code) since Tue 2016-05-24 12:19:48 CST; 25s ago 
Docs: http://supervisord.org 
Process: 27369 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=203/EXEC) 
Process: 27366 ExecStart=/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf (code=exited, status=203/EXEC) 
Main PID: 27366 (code=exited, status=203/EXEC) 

May 24 12:19:48 709101111291e5cZ systemd[1]: supervisor.service: Unit entered failed state. 
May 24 12:19:48 709101111291e5cZ systemd[1]: supervisor.service: Failed with result 'exit-code'. 

Das ist mein Arbeiter config:

[program:worker] 
process_name=%(program_name)s_%(process_num)02d 
command=php artisan queue:listen --timeout=360 --queue=high,low --sleep=3 --tries=3 
autostart=true 
autorestart=true 
exitcodes=0,2 
user=www 
numprocs=2 
redirect_stderr=true 
stdout_logfile=/www/worker/storage/logs/worker.log 

Würde jemand bitte helfen könnte?

Antwort

5

ich das Problem, indem bearbeiten behebe /lib/systemd/system/supervisor.service und Best Supervisor Befehl installieren verwenden easy_install supervisor

[Unit] 
Description=Supervisord Service 

[Service] 
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisor/supervisord.conf 
ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown 
ExecReload=/usr/local/bin/supervisorctl -c /etc/supervisor/supervisord.conf $OPTIONS reload 
KillMode=process 
Restart=on-failure 
RestartSec=50s 


[Install] 
WantedBy=multi-user.target 

Der Weg der supervisord falsch war in Standardeinstellung, es war/usr/ist. aber pip install wird es in/usr/local/bin setzen.

+0

"pip install - upgrade supervisor" installiert es nicht als Dienst. Haben Sie "sudo apt-get install supervisor" verwendet? Wenn ja, dann ist es installiert in/usr/bin ... – vgoklani

+0

@vgoklani Eigentlich mache ich zwei Möglichkeiten, es zu installieren, da das offizielle Ubuntu-Paket nur 3,2 ist, und dann upgrade ich es durch pip install --upgrade. –

11

Ich bin auf Ubuntu 16.04 mit Supervisor 3.2 und bekomme den gleichen Fehler, wenn ich versuche, Supervisor mit Service Supervisor starten zu starten.

Ich habe apt-get install supervisor verwendet, um Supervisor zu installieren und Supervisorctl und Supervisord in /usr/bin/ zu setzen.

Und meine supervisor.service Datei zeigt auf /usr/bin/. Ich stecke fest.

UPDATE Ich habe das Problem gefunden, es stellte sich heraus, dass in einer meiner .conf-Dateien in /etc/supervisor/conf.d/ ein Parsing-Fehler aufgetreten ist. Sobald ich festgestellt habe, dass es funktioniert hat. Dieser Fehler war nicht klar, aber es gibt einen Hinweis darauf, wie er zu finden ist. In dort ursprünglichen Fehlerausgang gibt es eine Zeile wie

ExecStart=/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf (code=exited, status=203/EXEC)

Run /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf von der Kommandozeile und es wird Ihnen einen ausführlicheren Fehler geben.

+0

Ich hatte auch dieses Problem. Ich denke, es ist ratsam, den Supervisor ohne Konfigurationsdateien zu starten, dann fügen Sie Ihre Konfigurationsdateien hinzu und sehen Sie, welche nicht funktionieren. – rednaw

0

Ich stieß auf ein ähnliches Problem, wo ich einen Status = 2 als Exit-Code bekam. Es gab keine weiteren Hinweise darauf, was schief gehen könnte.

Stellt sich heraus, dass Supervisor nicht gestartet wird, wenn der Protokollordner nicht vorhanden ist. Da dieser Ordner auf einem tmpfs gemountet wurde, wäre er nach einem Neustart des Geräts wieder gelöscht worden.

Dieser Betreuer verursacht nicht zu booten (bekanntes Problem: https://github.com/Supervisor/supervisor/issues/121) ein Update

Wie, habe ich die folgenden Zeilen zu meinem Startskript:

mkdir /var/log/supervisor 
sudo service supervisor restart 

nun der Ordner beim Start erstellt wird und Supervisor startet korrekt.

0

Ich habe keine Ahnung, wie man den Dienst in Ubuntu startet, obwohl es /lib/systemd/system/supervisor.service und Config richtig hat. Aber wenn Sie service supervisor start es geladen maskiert. Ich benutze Tipp, beide apt install supervisor und easy_install supervisor, dann easy_install -U supervisor.Nun hat es zwei Unterschied Versionen davon, /usr/local/bin/supervisord --version // Version 3.3.3 until 26th,Jan,2018 /usr/bin/supervisord --version // Version 3.2.0 Ubuntu 16.04

Danach bearbeiten /lib/systemd/system/supervisor.service und /etc/init.d/supervisor, die alle /usr/bin/supervisord-/usr/local/bin/supervisord ändern

schließlich in bash, laden Sie die Service-Konfiguration. Jetzt führen alle Dienste die neueste Version des Supervisors aus.

Vielleicht könnte dies versuchen, den Dienst zu entlarven.

systemctl unmask supervisor 
systemctl enable supervisor 
systemctl restart supervisor