Supervisor kann mit dem Supervisorctl-Befehl 'reload' nicht neu geladen werden

7

Ich laufe so supervisordauf meiner CentOS 6-Box,

/usr/bin/supervisord -c /etc/supervisord.conf

und wenn ich starte, sind supervisorctlalle Prozessstatus in Ordnung, aber wenn ich den reloadBefehl in Supervisorctl versuche und dann irgendetwas tue, bekomme ich

unix: ///tmp/supervisor.sock keine solche Datei

aber der Befehl reload sollte sich um die Neuerstellung der .sock kümmern?

Ich verwende dieselbe Konfigurationsdatei, die ich erfolgreich für andere Boxen verwendet habe, und ich führe alles als root aus. Ich kann nicht verstehen, was das Problem ist ...

Konfigurationsdatei:

; Sample supervisor config file.

[unix_http_server]
file=/tmp/supervisor.sock   ; (the path to the socket file)
;chmod=0700                 ; socket file mode (default 0700)
;chown=nobody:nogroup       ; socket file uid:gid owner
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

;[inet_http_server]         ; inet (TCP) server disabled by default
;port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

[supervisord]
logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10           ; (num of main logfile rotation backups;default 10)
loglevel=info                ; (log level;default info; others: debug,warn,trace)
pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false               ; (start in foreground if true;default false)
minfds=1024                  ; (min. avail startup file descriptors;default 1024)
minprocs=200                 ; (min. avail process descriptors;default 200)
;umask=022                   ; (process file creation umask;default 022)
;user=chrism                 ; (default is current user, required if root)
;identifier=supervisor       ; (supervisord identifier, default is 'supervisor')
;directory=/tmp              ; (default is not to cd during start)
;nocleanup=true              ; (don't clean up tempfiles at start;default false)
;childlogdir=/tmp            ; ('AUTO' child log dir, default $TEMP)
;environment=KEY=value       ; (key value pairs to add to environment)
;strip_ansi=false            ; (strip ansi escape codes in logs; def. false)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
;username=chris              ; should be same as http_username if set
;password=123                ; should be same as http_password if set
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history  ; use readline history if available

; The below sample program section shows all possible program subsection values,
; create one or more 'real' program: sections to be able to control them under
; supervisor.

;[program:foo]
;command=/bin/cat

[program:embed_scheduler]
command=/opt/web-apps/mywebsite/custom_process.py
process_name=%(program_name)s_%(process_num)d
numprocs=3

;[program:theprogramname]
;command=/bin/cat              ; the program (relative uses PATH, can take args)
;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
;numprocs=1                    ; number of processes copies to start (def 1)
;directory=/tmp                ; directory to cwd to before exec (def no cwd)
;umask=022                     ; umask for process (default None)
;priority=999                  ; the relative start priority (default 999)
;autostart=true                ; start at supervisord start (default: true)
;autorestart=unexpected        ; whether/when to restart (default: unexpected)
;startsecs=1                   ; number of secs prog must stay running (def. 1)
;startretries=3                ; max # of serial start failures (default 3)
;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
;stopsignal=QUIT               ; signal used to kill process (default TERM)
;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
;killasgroup=false             ; SIGKILL the UNIX process group (def false)
;user=chrism                   ; setuid to this UNIX account to run the program
;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
;stdout_events_enabled=false   ; emit events on stdout writes (default false)
;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO
;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups=10     ; # of stderr logfile backups (default 10)
;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
;stderr_events_enabled=false   ; emit events on stderr writes (default false)
;environment=A=1,B=2           ; process environment additions (def no adds)
;serverurl=AUTO                ; override serverurl computation (childutils)

; The below sample eventlistener section shows all possible
; eventlistener subsection values, create one or more 'real'
; eventlistener: sections to be able to handle event notifications
; sent by supervisor.


;[eventlistener:theeventlistenername]
;command=/bin/eventlistener    ; the program (relative uses PATH, can take args)
;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
;numprocs=1                    ; number of processes copies to start (def 1)
;events=EVENT                  ; event notif. types to subscribe to (req'd)
;buffer_size=10                ; event buffer queue size (default 10)
;directory=/tmp                ; directory to cwd to before exec (def no cwd)
;umask=022                     ; umask for process (default None)
;priority=-1                   ; the relative start priority (default -1)
;autostart=true                ; start at supervisord start (default: true)
;autorestart=unexpected        ; whether/when to restart (default: unexpected)
;startsecs=1                   ; number of secs prog must stay running (def. 1)
;startretries=3                ; max # of serial start failures (default 3)
;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
;stopsignal=QUIT               ; signal used to kill process (default TERM)
;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
;killasgroup=false             ; SIGKILL the UNIX process group (def false)
;user=chrism                   ; setuid to this UNIX account to run the program
;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
;stdout_events_enabled=false   ; emit events on stdout writes (default false)
;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO
;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups        ; # of stderr logfile backups (default 10)
;stderr_events_enabled=false   ; emit events on stderr writes (default false)
;environment=A=1,B=2           ; process environment additions
;serverurl=AUTO                ; override serverurl computation (childutils)

; The below sample group section shows all possible group values,
; create one or more 'real' group: sections to create "heterogeneous"
; process groups.

;[group:thegroupname]
;programs=progname1,progname2  ; each refers to 'x' in [program:x] definitions
;priority=999                  ; the relative start priority (default 999)

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

;[include]
;files = relative/directory/*.ini
Yarin
quelle
Haben Sie überprüft, ob /tmp/supervisor.sock unmittelbar vor der Verwendung von Supervisorctl vorhanden ist, und dieser Supervisord hat es noch nicht beendet und entfernt?
Ramruma
Ramruma - das macht keinen Sinn. Ich bin IN Supervisorctl und rufe 'reload' auf, damit dieser Befehl die Neuerstellung der .sock-Datei übernimmt
Yarin
Ich habe das gleiche Problem. Es tut nicht das, was es tun soll! Wenn Sie nur Supervisord ausführen, sollte der Daemon gestartet werden, dann sollte ctl funktionieren.
jmoz

Antworten:

3

Dies ist ein Supervisord-Fehler: https://github.com/Supervisor/supervisor/issues/121#issuecomment-11445156

Ich habe es umgangen, indem ich zu v3.0a10 zurückgekehrt bin.

Leopd
quelle
Ich hatte diese seltsamen Probleme mit der Version von Supervisord in den CentOS Yum Repos. Nuked diese Version & ging mit der easy_install-Methode. Kein Problem seitdem. Die Version in den Repos ist auch ziemlich alt und unterstützt nicht viele der neuen Funktionen auf ihrer Website.
Churnd
2

Sie haben den Fehler in der neuesten Version (3.0b2, 28.05.2013) behoben.

Eine in 3.0b1 eingeführte Änderung der Protokollierung wurde rückgängig gemacht, die es mehreren Prozessen ermöglichen sollte, mit dem rotierenden Protokollhandler in derselben Datei zu protokollieren. Die Implementierung führte dazu, dass Supervisord beim Neuladen abstürzte und Dateihandles leckte. Da die Optionen für die Protokollrotation pro Programm angegeben werden, können möglicherweise unmögliche Konfigurationen erstellt werden (widersprüchliche Rotationsoptionen für dieselbe Datei). Angesichts der Tatsache, dass Supervisord jetzt Syslog-Unterstützung bietet, wurde beschlossen, diese Funktion zu entfernen. Der Dokumentation wurde eine Warnung hinzugefügt, dass zwei Prozesse möglicherweise nicht in derselben Datei protokolliert werden.

https://pypi.python.org/pypi/supervisor

https://pypi.crate.io/packages/source/s/supervisor/supervisor-3.0b2.tar.gz#md5=e2557853239ee69955f993091b0eddc4

Gerade getestet und es funktioniert!

alb-i986
quelle
0

Stellen Sie sicher, dass Ihre Sock-Datei in der Supervisor-Konfiguration richtig ist. sudo nano /etc/supervisor/supervisord.conf

Überprüfen Sie meine Antwort in einem anderen Beitrag hier

Aldyahsn
quelle