普段はRaspberryPy(ラズパイ)はモニターに繋がずサーバーとして隅っこに放置です。 そのため再起動しても自動的にHomeBridgeが起動する設定方法を調べます。 やっとかないと毎回モニターつないであーだこーだと手間がかかってたいへん。
シリーズ化してます( ゚∀゚)アハハ
- ドアロック解除! Apple HomeKitとSwitchBotとRaspberry PiとHomeBridgeでキャンピングカーのドアロックを操作するょ!
- <覚え書き>ラズパイにhomebridge-config-ui-xを入れるときにエラー! さぁどうする??
- <覚え書き>ラズパイでpythonを使いたいけどgattlibインストールでエラー! 超初心者なりにいろいろ試すの巻
- <覚え書き>ラズパイ再起動でHomeBridgeを自動起動させるよ!
- PySwitchBotもPythonもわかんない! SwitchBotの設定から逃げるの巻!
VNCでも画面が出ない!?
知らなかったことのひとつにラズパイの仕様らしくHDMI接続をしていないとVNCでも画面が出ない!? 「隅っこ放置」でVNCで画面表示を出すにはラズパイをデスクトップモード(サービスモード)で起動する必要があるらしい!
「3.Interface Opthions」の中にVNCの設定があります。SSHもあります。
pi@simejipi:~ $ sudo raspi-config
むかーし、コマンドラインだけで愛想ないなーと思ってた時にこんな選択画面が出てきた時に感動した記憶がよみがえります。
VNCを有効にします。 操作はカーソルとEnterとtabです。
次にconfig.txtを編集します。
#hdmi_force_hotplug=1
の「#」をはずして
hdmi_force_hotplug=1
とするだけ。 保存して終わり。
pi@simejipi:~ $ sudo nano /boot/config.txt
PM2とはなんぞ?
2回やったらアップデートあるっておしえてくれた
pi@simejipi:~ $ sudo npm install pm2 -g npm WARN deprecated debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) /usr/bin/pm2 -> /usr/lib/node_modules/pm2/bin/pm2 /usr/bin/pm2-dev -> /usr/lib/node_modules/pm2/bin/pm2-dev /usr/bin/pm2-docker -> /usr/lib/node_modules/pm2/bin/pm2-docker /usr/bin/pm2-runtime -> /usr/lib/node_modules/pm2/bin/pm2-runtime npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules/pm2/node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + pm2@4.5.5 added 201 packages from 196 contributors in 85.81s
2回目で Run npm install -g npm to update! と言われちゃいます。
pi@simejipi:~ $ sudo npm install pm2 -g npm WARN deprecated debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) /usr/bin/pm2 -> /usr/lib/node_modules/pm2/bin/pm2 /usr/bin/pm2-dev -> /usr/lib/node_modules/pm2/bin/pm2-dev /usr/bin/pm2-docker -> /usr/lib/node_modules/pm2/bin/pm2-docker /usr/bin/pm2-runtime -> /usr/lib/node_modules/pm2/bin/pm2-runtime npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules/pm2/node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + pm2@4.5.5 updated 1 package in 24.404s ╭───────────────────────────────────────────────────────────────╮ │ │ │ New major version of npm available! 6.14.11 → 7.7.5 │ │ Changelog: https://github.com/npm/cli/releases/tag/v7.7.5 │ │ Run npm install -g npm to update! │ │ │ ╰───────────────────────────────────────────────────────────────╯
言われた Run npm install -g npm to update! を実行するとバージョンが7.7.5となりました。
pi@simejipi:~ $ sudo npm install -g npm /usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js /usr/bin/npx -> /usr/lib/node_modules/npm/bin/npx-cli.js + npm@7.7.5 added 58 packages from 23 contributors, removed 241 packages and updated 194 packages in 78.766s
pm2 startupで動き出すっぽい。 また最後の行にメッセージが!
pi@simejipi:~ $ pm2 startup ------------- __/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____ _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___ _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__ _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___ _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____ _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________ _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________ _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_ _\///______________\///______________\///__\///////////////__ Runtime Edition PM2 is a Production Process Manager for Node.js applications with a built-in Load Balancer. Start and Daemonize any application: $ pm2 start app.js Load Balance 4 instances of api.js: $ pm2 start api.js -i 4 Monitor in production: $ pm2 monitor Make pm2 auto-boot at server restart: $ pm2 startup To go further checkout: http://pm2.io/ ------------- [PM2] Init System found: systemd [PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
最後の行にコピペして実行します。 PM2ってプロセスマネージャーなのね。
pi@simejipi:~ $ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi ------------- __/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____ _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___ _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__ _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___ _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____ _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________ _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________ _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_ _\///______________\///______________\///__\///////////////__ Runtime Edition PM2 is a Production Process Manager for Node.js applications with a built-in Load Balancer. Start and Daemonize any application: $ pm2 start app.js Load Balance 4 instances of api.js: $ pm2 start api.js -i 4 Monitor in production: $ pm2 monitor Make pm2 auto-boot at server restart: $ pm2 startup To go further checkout: http://pm2.io/ ------------- [PM2] Init System found: systemd Platform systemd Template [Unit] Description=PM2 process manager Documentation=https://pm2.keymetrics.io/ After=network.target [Service] Type=forking User=pi LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity Environment=PATH=/home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin Environment=PM2_HOME=/home/pi/.pm2 PIDFile=/home/pi/.pm2/pm2.pid Restart=on-failure ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill [Install] WantedBy=multi-user.target Target path /etc/systemd/system/pm2-pi.service Command list [ 'systemctl enable pm2-pi' ] [PM2] Writing init configuration in /etc/systemd/system/pm2-pi.service [PM2] Making script booting at startup... [PM2] [-] Executing: systemctl enable pm2-pi... Created symlink /etc/systemd/system/multi-user.target.wants/pm2-pi.service → /etc/systemd/system/pm2-pi.service. [PM2] [v] Command successfully executed. +---------------------------------------+ [PM2] Freeze a process list on reboot via: $ pm2 save [PM2] Remove init script via: $ pm2 unstartup systemd
プロセスとして開始してます。オッケー!
pi@simejipi:~ $ pm2 start homebridge [PM2] Spawning PM2 daemon with pm2_home=/home/pi/.pm2 [PM2] PM2 Successfully daemonized [PM2] Starting /usr/bin/homebridge in fork_mode (1 instance) [PM2] Done. ┌─────┬───────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├─────┼───────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 0 │ homebridge │ default │ N/A │ fork │ 26473 │ 0s │ 0 │ online │ 0% │ 22.2mb │ pi │ disabled │ └─────┴───────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
保存して完了!
pi@simejipi:~ $ pm2 save [PM2] Saving current process list... [PM2] Successfully saved in /home/pi/.pm2/dump.pm2
これで再起動後は自動的に homebridge が起動するようになりました╭( ・ㅂ・)و ̑̑ グッ
コメント