Supervisord - Redirect Prozess stdout Konsole
Ich bin der Planung bis zur Ausführung mehrerer Prozesse mit Vorgesetzten und bitte meine supervisord.conf-Datei unter:
[supervisord]
[program:bash]
command=xyz
stdout_logfile =/tmp/bash.log
redirect_stderr=true
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
Ich wünschte, die Umleitung des stdout des Prozesses namens bash supervisor-Konsole so, dass wenn ich start-supervisor mit
/usr/bin/supervisord
Befehl, ich konnte sehen, wie der Kind-Prozess protokolliert. Wie kann ich dies tun ? Ich habe versucht, syslog-für stdout_logfile-Attribut, aber es hat nicht funktioniert.
InformationsquelleAutor der Frage KarthikJ | 2014-08-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leiten Sie das Programm an stdout an den Betreuer der Ausgabe mit den folgenden Konfigurationsmöglichkeiten:
Erklärung:
/dev/fd/1
(das ist das gleiche wie/proc/self/fd/1
), das system tatsächlich Klone Datei-Deskriptor #1 (stdout) des Prozesses. Mit diesem alsstdout_logfile
führt daher zusupervisord
Umleitung des Programms an stdout, um seine eigenen stdout.stdout_logfile_maxbytes=0
deaktiviert log-Datei-rotation-und das ist offensichtlich nicht sinnvoll für stdout. Wird diese option nicht angegeben wird, führt zu einem Fehler, weil der Standardwert ist 50 MB groß und supervisor ist nicht schlau genug, zu erkennen, dass die angegebene log-Datei ist keine normale Datei.Weitere Informationen:
http://veithen.github.io/2015/01/08/supervisord-redirecting-stdout.html
InformationsquelleAutor der Antwort Andreas Veithen
Update
Siehe das folgende Transkript aus einer Beispiel-session. Supervisord sicherlich erfasst die Standardausgabe von ping. Was Sie sonst noch brauchen?
Original-Beitrag
War ich tatsächlich etwas erstaunt zu Lesen, Ihre Antworten, denn es war die grundlegende Funktion der
supervisord
daemon. Vielleicht gibt es einige Missverständnisse über das, was Sie als "supervisord Konsole"?? Die bash-Konsole, die Sie verwenden, starten Sie diesupervisord
daemon wird nicht alles gedruckt. Sie müssen für die Verbindung zum daemon durch diesupervisorctl
Kommando über die Unix-domain-socket, dessen Pfad Sie angegeben haben, mit derserverurl = unix:///tmp/supervisor.sock
undfile = /tmp/supervisor.sock
Linien.Auch die web-GUI ist sehr bequem. Fügen Sie diese Zeilen in deine config-Datei:
Sehen das offizielle Dokument für die details.
InformationsquelleAutor der Antwort nodakai