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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

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

Linux

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

Raspberry Pi

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

Supervisor

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

Q&A

解決済

1回答

2825閲覧

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

row

総合スコア11

Node.js

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

Linux

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

Raspberry Pi

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

Supervisor

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

0グッド

1クリップ

投稿2017/10/15 14:59

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/ツール等のバージョンなど)

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

同じ環境ではないと思いますので、推測も入りますこと、ご了承ください。
(ラズパイ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"オプションは効くかもしれませんので試してみてください。以下、私の環境での例です。

Bash

1pi@raspberrypi:~ $ which supervisord 2/usr/bin/supervisord 3pi@raspberrypi:~ $ supervisord -v 43.3.1 5pi@raspberrypi:~ $ supervisord --version 63.3.1

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

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

Bash

1pi@raspberrypi:~ $ /usr/local/bin/homebridge -U /home/pi/.homebridge 2*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi. 3*** WARNING *** Please fix your application to use the native API of Avahi! 4*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node> 5*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi. 6*** WARNING *** Please fix your application to use the native API of Avahi! 7*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister> 8[2017-10-16 09:43:39] No plugins found. See the README for information on installing plugins. 9[2017-10-16 09:43:39] config.json (/home/pi/.homebridge/config.json) not found. 10Scan this code with your HomeKit App on your iOS device to pair with Homebridge: 11 12 ┌────────────┐ 13 │ 031-45-154 │ 14 └────────────┘ 15 16[2017-10-16 09:43:39] Homebridge is running on port 42743.

投稿2017/10/16 09:46

編集2017/10/16 10:10
dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

row

2017/10/16 14: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
dodox86

2017/10/16 15:49 編集

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

2017/10/17 15: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.
dodox86

2017/10/17 16: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" と指定してみてください。
row

2017/10/17 21:47 編集

environment=PATH="/usr/local/bin" と変更するとうまくいきました! ~ $ sudo service supervisor restart ~ $ sudo service supervisor status と入れて、ラズパイを再起動してターミナルを開かなくても動いています。 出来ました!素晴らしいです!最後まで本当にありがとうございました。????????
dodox86

2017/10/18 00:04

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問