web-dev-qa-db-fra.com

Supervisorctl ne respectant pas ma configuration

J'ai défini ce qui suit dans /home/david/conf/supervisor.conf:

[unix_http_server]
file=/home/david/tmp/supervisor.sock

[supervisord]
logfile=/home/david/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=/home/david/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
childlogdir=/home/david/tmp

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///home/david/tmp/supervisor.sock

Et a commencé supervisord :

$ supervisord -c /home/david/conf/supervisor.conf

Cependant, comment se fait-il que supervisorctl utilise toujours la valeur par défaut http://localhost:9001 comme serverurl?

$ supervisorctl
http://localhost:9001 refused connection
supervisor>

J'ai vérifié /home/david/tmp et les fichiers supervisord.log et supervisord.pid existe.

41
Jürgen Paul

Vous devez exécuter supervisorctl avec -c ainsi que. De la documentation (mon accent):

Le fichier de configuration du superviseur est conventionnellement nommé supervisord.conf. Il est utilisé à la fois par supervisord et supervisorctl. Si l'une des applications est démarrée sans le -c option (l'option utilisée pour indiquer explicitement à l'application le nom du fichier de configuration), l'application recherchera un fichier nommé supervisord.conf dans les emplacements suivants, dans l'ordre spécifié. Il utilisera le premier fichier trouvé.

  1. $CWD/supervisord.conf
  2. $CWD/etc/supervisord.conf
  3. /etc/supervisord.conf
87
Burhan Khalid
  • Dans MacOS, utilisez brew pour installer
 brew install supervisor
  • Ensuite aller à /usr/local/etc/supervisord.ini et commentez ces lignes:
;[unix_http_server]
;file=/usr/local/var/run/supervisor.sock   ; the path to the socket file

et décommentez ces lignes:

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; ip_address:port specifier, *:port for all iface
  • Enfin, redémarrez le démon:
brew services restart supervisor

C'est tout ce dont vous avez besoin.

0
Farsheed

Pour ajouter à la réponse valide ci-dessus, assurez-vous de placer vos fichiers de configuration pour les applications que vous souhaitez surveiller dans le dossier de configuration du superviseur en tant que sous-dossier appelé conf.d. Cela dépendra de la méthode utilisée pour installer le superviseur, le gestionnaire de packages par défaut ou easy_install.

0
einarc

Comme solution, vous pouvez créer un lien symbolique vers le fichier de configuration. Comme ceci pour Mac OS:

Sudo ln -sv /usr/local/etc/supervisord.ini /etc/supervisord.conf

0
PRIHLOP