Ubuntuサーバー16.04にスーパーバイザーをインストールしました。
$ Sudo apt-get install supervisor
$ Sudo update-rc.d supervisor defaults
再起動後、スーパーバイザが自動的に起動しませんでした。ステータスを確認しました:
qinking126@nas:~$ Sudo service supervisor status
[Sudo] password for qinking126:
● supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: http://supervisord.org
なぜそれが非アクティブ(死んでいる)なのかわかりません。修正するには何をチェックする必要がありますか?
この問題はUbuntu 16.04のスーパーバイザーパッケージのパッケージングバグであり、systemdへの切り替えが原因であると確信しています。
この問題は、 issue 735 のスーパーバイザープロジェクトの課題追跡(上流で何も修正できない)の上流ですでに報告されています。
Ubuntu 16.04はかなり前にリリースされており、これにより下位互換性と期待される動作が損なわれますが、数日前にこの問題に悩まされ、この問題がパッケージのメンテナに報告されなかったことに驚いていました。これが私がこの問題を bug 1594740 のパッケージメンテナーに報告することにした理由です。
bug 1594740 に構成ファイルの作成を必要としない簡単な回避策を記載しました-スーパーバイザーデーモンを有効にして起動するだけですパッケージのインストール後:
# Make sure Supervisor comes up after a reboot.
Sudo systemctl enable supervisor
# Bring Supervisor up right now.
Sudo systemctl start supervisor
これがUbuntu 16.04で修正されるかどうかはよくわかりませんが、少なくとも bug 1594740 、ない問題735 )。
誰かがこの問題にかまれた場合は、 bug 1594740 で懸念を表明して、パッケージのメンテナにこの問題を修正するように説得してください。ありがとう!
更新(2017-03-24):昨日、この問題の修正 がリリースされました から xenial-updatesbug 1594740 の結果、新規インストールでこの問題が発生することはなくなりました。
こちらをご覧ください 起動時に監視プログラムを自動的に実行
作成supervisord.service
ファイル/usr/lib/systemd/system
そしてシステムに応じて以下の内容をこのファイルに入れます:
Sudo systemctl daemon-reload
Sudo systemctl enable supervisord.service
Sudo systemctl start supervisord.service
私はそれをスーパバイザを取り外し、再度インストールしました。それからそれは私のために働いた。
Sudo apt-get purge supervisor
Sudo apt-get install supervisor
cp path/to/file.conf /etc/supervisor/conf.d/
Sudo supervisorctl reread
Sudo supervisorctl update
/ lib/systemd/system /に配置できるファイルの例を次に示します
[Unit]
Description=Supervisord Service
[Service]
Restart=on-failure
RestartSec=42s
User=ubuntu
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisord.conf
[Install]
WantedBy=multi-user.target
apt-getはUbuntu 16.04.2にスーパーバイザをインストールし、スーパーバイザ3.2.0をインストールし、再起動時に自動的に起動します。
pip install supervisor --upgradeを3.3.1にアップグレードすると、まったく起動しなくなります。
アップグレードはUbuntu 16.04.1で機能します
CentOS
では、起動時にsupervisord
を実行するcronジョブを実行して解決しました。
cronジョブを作成するにはrun crontab -e
ターミナルに貼り付けてから、@reboot /bin/supervisord
(supervisordへのパスである必要があります)ジョブの最後にそれを保存します。