Ubuntu 16.04 LTSを使用して私のpythonアプリを構成します。すべてを構成し、アプリは手動で実行しています。スーパーバイザーで自動化したいのですが、スーパーバイザーをインストールして構成しました。ただし、実行すると:
スーパーバイザ構成ファイル:
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; 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:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
; 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 = /etc/supervisor/conf.d/*.conf
supervisorctl reread
私はunix:///tmp/supervisor.sock no such file
しかし、supervisord
ステータスは実行中です。
どなたかアイデアをお持ちください。
最後に、/etc/supervisor/conf.d/
のすべての構成ファイルを削除した後、supervisor
を再インストールすることで解決しました。これでうまくいきました。
私も同じ問題を抱えていました。 man supervisorctl
のマニュアルを読んだ後、デフォルトのファイルは/etc/supervisord.conf
であり、ubuntuでは/etc/supervisor/supervisord.conf
にあることに気付きました。私はシンボリックリンクを作成しました:
Sudo ln -s /etc/supervisor/supervisord.conf /etc/supervisord.conf
これで問題が解決しました。
おそらく、構成ファイルの1つに構文エラーがあります。
たとえば、[program]句がないか確認します
Conf.dディレクトリの各ファイルを削除し、スーパーバイザを再起動して問題のあるファイルを特定します。
このコマンドを実行するSudo service supervisord restart
私の問題を解決しました。
Ubuntuスーパーバイザーパッケージ(3.3.1-1.1)の構成ファイルは/etc/supervisor/supervisord.conf
にあります。
何らかの理由で(理由はわかりません)/etc/supervisord.conf
に別の構成ファイルがあり、supervisorctlがそのファイルを優先しています。
構成ファイルの場所は、supervisorctlに明示的に定義できます。
Sudo supervisorctl -c /etc/supervisor/supervisord.conf reread
または、単に/etc/supervisord.conf
を削除します。
これを取得する理由:複数の理由があります。私が見つけたのは、サーバーが電源遮断によって継続的にダウンしているために、私のスーパーバイザーが破損したことです。
解決策:最初にスーパーバイザを取り外してから、再インストールします。
手順:
Sudo apt-get remove supervisor
Sudo apt-get remove --auto-remove supervisor
Sudo apt-get purge supervisor
Sudo apt-get purge --auto-remove supervisor
上記のリンクはここにあります:
https://www.howtoinstall.co/en/ubuntu/trusty/supervisor?action=remove