Translate

2020年12月15日火曜日

pigpiod を systemctl で起動しようとしたら 8888 番ポートがすでに使われていて動作しないと怒られた件

注意:2021/1/13追記までできれば読んでください。

 

久しぶりに Raspberry Pi3B+をセットアップする要件があり、12月2日版busterを入れ、pigpioを以下の手順でインストールした。

sudo apt update && sudo apt upgrade -y
sudo apt install pigpio pigpiod -y
sudo systemctl enable pigpiod
sudo systemctl start pigpiod



そしてsudo systemctl status pigpiod してみると..

20.12.09 10:30:11 (+0800)  pigpiod  2020-12-09 10:30:11 initInitialise: bind to port 8888 failed (Address already in use)
20.12.09 10:30:11 (+0800)  pigpiod  Can't initialise pigpio library


なるエラーが出てデーモンが起動しない..

昔はこの手順で動いたと思ったのだけど..

いろいろしらべたら、手動でsudo pigpiodしたら動作したので、/lib/systemd/system/pigpiod.serviceの以下の赤字部分を削除してみた

[Unit]
Description=Daemon required to control GPIO pins via pigpio
[Service]
ExecStart=/usr/bin/pigpiod -l
ExecStop=/bin/systemctl kill pigpiod
Type=forking
[Install]
WantedBy=multi-user.target


sudo rebootして再度sudo systemctl status pigpiodしたら..動作していた。

以前のpigpiod.service がどうなっていたかは確認していないのだけど-lオプションってremote socket をdisableにする設定だからポート番号8888のlistenでエラーになるのはおかしいと思うんだけどなあ..ドキュメントが間違ってるのかもしれないなあ..

pigpiod ..なにかあったのかな..

 

2021/1/13 追記:

sudo raspi-config して「3 Interface Options」>「P8 Remote GPIO」というメニューが新設されていて、これを先にenableするとsudo apt install pigpio -y && sudo systemctl start pigpiod で Active になった。

おそらく、このオプションを有効にしないとpigpiodsystemctl で起動できなくなったようだ。

IoTデバイスのセキュリティポリシー厳格化の風潮に合わせたアップデートなのだとおもう。

想像だけど。

1 件のコメント:

Unknown さんのコメント...

やっと解決しました。
スティッピングモ−タ−を購入して間もない頃は使えていたのに、途中から謎エラ−が出てきたのは、アプデのせいだったんですね・・・
数日間頭を悩ませていた問題を、解決していただいて有難うございます!

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...