web-dev-qa-db-ja.com

Supervisorctlが構成を尊重しない

/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

そして開始 監視

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

しかし、なぜsupervisorctlはデフォルトのhttp://localhost:9001serverurlとして使用するのでしょうか?

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

/home/david/tmpとファイルsupervisord.logおよびsupervisord.pidが存在することを確認しました。

41
Jürgen Paul

-cとともにsupervisorctlも実行する必要があります。ドキュメントから(私の強調):

スーパーバイザー構成ファイルは通常、supervisord.confという名前です。 supervisordsupervisorctlの両方で使用されます。 いずれかのアプリケーションが-cオプションなしで起動された場合(アプリケーションに構成ファイル名を明示的に伝えるために使用されるオプション)、アプリケーションは次の中でSupervisord.confという名前のファイルを探します。指定された順序での場所。見つかった最初のファイルを使用します。

  1. $CWD/supervisord.conf
  2. $CWD/etc/supervisord.conf
  3. /etc/supervisord.conf
87
Burhan Khalid
  • MacOSでは、brewを使用してインストールします
 brew install supervisor
  • 次に、/usr/local/etc/supervisord.iniおよびこれらの行をコメントします。
;[unix_http_server]
;file=/usr/local/var/run/supervisor.sock   ; the path to the socket file

これらの行のコメントを外します。

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; ip_address:port specifier, *:port for all iface
  • 最後にデーモンを再起動します:
brew services restart supervisor

必要なのはそれだけです。

0
Farsheed

上記の有効な回答に追加するには、監視するアプリの構成ファイルを、conf.dというサブフォルダーとしてスーパーバイザーの構成フォルダーの下に配置してください。これは、スーパーバイザー、デフォルトパッケージマネージャー、またはeasy_installのインストールに使用する方法によって異なります。

0
einarc

解決策として、構成ファイルへのシンボリックリンクを作成できます。 Mac OSの場合:

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

0
PRIHLOP