質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.02%

  • Linux

    3191questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Node.js

    1552questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

  • Raspberry Pi

    612questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

  • Supervisor

    7questions

    Supervisorは、python製のプロセス管理・デーモン化のツール。ディストリビューションで用意されていないパッケージのデーモン化をプログラム上で簡単に実装することが可能です。さらに、プロセスが終了した際に自動的に起動したり、一定数のプロセスを維持するなどの機能も搭載されています。

デーモン化ができません。

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 275

row

score 3

homebridgeのデーモン化のところで困っています。
supervisorをインストールしました。
sudo nano /etc/supervisor/conf.d/homebridge.confにて
コードを入力しましたがうまくいきません。
太字のファイルの場所指定がダメなように思っていますが、確認方法がわからず困っています。
~ $ which homebridge
/usr/local/bin/homebridge
ご教授願います。

コード

[program:homebridge]
environment =PATH= "/home/pi/.nodebrew/current/bin"
command = /home/pi/.nodebrew/current/bin/homebridge -U /home/pi/.homebridge
user = pi
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/homebridge.log
stdout_logfile_maxbytes = 1MB
stdout_logfile_backups = 5
stdout_capture_maxbytes = 1MB
redirect_stderr = true

試したこと

⑴動いているかの確認をしましたがコマンドが見つからない?
~$ sudo supervisorctl status
homebridge                       FATAL      can't find command '/home/pi/.nodebrew/current/bin/homebridge'

⑵バージョンの確認したが、エラーと出ている
~$ supervisord -v
Error: option -v not recognized
For help, use /usr/bin/supervisord -h

補足情報(言語/FW/ツール等のバージョンなど)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

同じ環境ではないと思いますので、推測も入りますこと、ご了承ください。
(ラズパイ2 + RASPBIAN STRETCH LITE 2017-09-07版で試しています)

command=の部分は実行するコマンドラインを記述するところですので、which homebridge/usr/local/bin/homebridgeが表示されるなら、以下のような指定になるはずです。

command = /usr/local/bin/homebridge -U /home/pi/.homebridge

更に、supervisord コマンド のオプションで "-v"が効かないのはおかしいですね。古いバージョンかもしれません。"--version"オプションは効くかもしれませんので試してみてください。以下、私の環境での例です。

pi@raspberrypi:~ $ which supervisord
/usr/bin/supervisord
pi@raspberrypi:~ $ supervisord -v
3.3.1
pi@raspberrypi:~ $ supervisord --version
3.3.1


supervisordでデーモン化を行う前に command= で記述したコマンドラインを
手入力して実行してみてください。まずそれで動くのが基本だと思います。

homebridgeの設定をちゃんと行っていないので参考程度ですが、私の環境では以下のようになりました。
※"runnning on port 42743"となるので、一応、起動はしていますが「config.jsonが無い」などと報告されるので、正しくは動いていません。この例と同じになるのが正しい、と言う意味ではありませんのでその点はご注意ください。

pi@raspberrypi:~ $ /usr/local/bin/homebridge -U /home/pi/.homebridge
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
[2017-10-16 09:43:39] No plugins found. See the README for information on installing plugins.
[2017-10-16 09:43:39] config.json (/home/pi/.homebridge/config.json) not found.
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

    ┌────────────┐     
    │ 031-45-154 │     
    └────────────┘     

[2017-10-16 09:43:39] Homebridge is running on port 42743.

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/16 23:41

    コマンドラインの記述を変更しました。
    実行されているかの確認をしたところは変化がありましたが、まだダメなようです。
    ~ $ sudo supervisorctl
    homebridge FATAL Exited too quickly (process log may have details)
    supervisor>
    同じ場所にsupervisordはあるみたいなのですが、相変わらずバージョンが出ないです。
    〜 $ which supervisord
    /usr/bin/supervisord
    ノードは出るのですが。
    ~ $ node -v
    v6.2.2

    キャンセル

  • 2017/10/17 00:49 編集

    Exited too quickly (process log may have details は、「終了するのが速過ぎ」と言っています。推測ですが、config.json がおかしくて即、終了しているのでは。
    stdout_logfile = /var/log/supervisor/homebridge.log でログ出力を指定していますが、内容はどのようになっていますでしょうか。/var/log/supervisor/homebridge.log の中身をみてみてください。

    キャンセル

  • 2017/10/18 00:18

    ~ $ tailf /var/log/supervisor/homebridge.log で試して見ました。
    /usr/bin/env: `node': そのようなファイルやディレクトリはありません
    とでました。
    コードのenvironment =PATH= "/home/pi/.nodebrew/current/bin"がおかしいのでしょうか?
    これが何を表しているかもわからずです。すみません。

    ~ $ /usr/local/bin/homebridge -U /home/pi/.homebridgeと入力すると起動してIphoneのホームアプリから操作できているので、config.jsonのコードは良い!?(指摘されている部分のことでないならスミマセン..)
    *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
    *** WARNING *** Please fix your application to use the native API of Avahi!
    *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
    *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
    *** WARNING *** Please fix your application to use the native API of Avahi!
    *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
    [2017-10-18 00:03:57] Loaded plugin: homebridge-cmd
    [2017-10-18 00:03:58] Registering accessory 'homebridge-cmd.CMD'
    [2017-10-18 00:03:58] ---
    [2017-10-18 00:03:58] Loaded plugin: homebridge-irkit
    [2017-10-18 00:03:58] Registering accessory 'homebridge-irkit.IRKit'
    [2017-10-18 00:03:58] ---
    [2017-10-18 00:03:58] Loaded config.json with 4 accessories and 0 platforms.
    [2017-10-18 00:03:58] ---
    [2017-10-18 00:03:58] Loading 4 accessories...
    [2017-10-18 00:03:58] [テレビ] Initializing IRKit accessory...
    [2017-10-18 00:03:58] [扇風機] Initializing IRKit accessory...
    [2017-10-18 00:03:58] [エアコン] Initializing IRKit accessory...
    [2017-10-18 00:03:58] [照明] Initializing IRKit accessory...
    Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

    ┌────────────┐
    │ 031-45-154 │
    └────────────┘

    [2017-10-18 00:03:58] Homebridge is running on port 51826.

    キャンセル

  • 2017/10/18 01:05 編集

    > environment =PATH= "/home/pi/.nodebrew/current/bin"がおかしいのでしょうか?
    そのようです。もう一息だと思います。お書きになっているように、homebridgeのcofig.jsonは問題無くて、node.js の本体nodeがデーモンでの実行時に見つからなくなっている様子です。
    ターミナルで、which node と実行するとどうなりますか。そのディレクトリをPATH=に設定すれば行けるかも。/usr/local/bin/node だと思いますが、その場合は
    environment=PATH="/usr/local/bin"
    と指定してみてください。

    キャンセル

  • 2017/10/18 06:47 編集

    environment=PATH="/usr/local/bin"
    と変更するとうまくいきました!
    ~ $ sudo service supervisor restart
    ~ $ sudo service supervisor status
    と入れて、ラズパイを再起動してターミナルを開かなくても動いています。

    出来ました!素晴らしいです!最後まで本当にありがとうございました。😂🙇

    キャンセル

  • 2017/10/18 09:04

    経過のご報告ありがとうございます。動いて良かったです。homebridgeは私も動かしたことが無かったので、勉強になりました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 91.02%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Linux

    3191questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Node.js

    1552questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

  • Raspberry Pi

    612questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

  • Supervisor

    7questions

    Supervisorは、python製のプロセス管理・デーモン化のツール。ディストリビューションで用意されていないパッケージのデーモン化をプログラム上で簡単に実装することが可能です。さらに、プロセスが終了した際に自動的に起動したり、一定数のプロセスを維持するなどの機能も搭載されています。