RPI に Debian 拡張があります。起動時にカスタムサービスを開始する必要があります。
/lib/systemd/system/lora-packet-forwarder.service
サービスが有効になっているが無効になっているように見えます。
lora-packet-forwarder.service - LoRa Packet Forwarder
Loaded: loaded (/lib/systemd/system/lora-packet-forwarder.service; enabled; vendor preset: enabled)
Active: inactive (dead)
調べる:
sudo journalctl -f -u lora-packet-forwarder.service
--何も表示されません。
コンソールから手動で起動すると正常に動作します。
sudo systemctl start lora-packet-forwarder.service
lora-packet-forwarder.service - LoRa Packet Forwarder
Loaded: loaded (/lib/systemd/system/lora-packet-forwarder.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-07-05 15:01:48 BST; 3s ago
Process: 554 ExecStartPre=/home/pi/lora_gateway/reset_lgw.sh start (code=exited, status=0/SUCCESS)
Main PID: 570 (lora_pkt_fwd)
Memory: 568.0K
CGroup: /system.slice/lora-packet-forwarder.service
└─570 /home/pi/packet_forwarder/lora_pkt_fwd/lora_pkt_fwd
Jul 05 15:01:47 raspberrypi systemd[1]: Starting LoRa Packet Forwarder...
Jul 05 15:01:47 raspberrypi reset_lgw.sh[554]: Accessing concentrator reset pin through GPIO25...
Jul 05 15:01:48 raspberrypi systemd[1]: Started LoRa Packet Forwarder.
サービスファイルの内容は次のとおりです。
[Unit]
Description=LoRa Packet Forwarder
[Service]
WorkingDirectory=/home/pi/packet_forwarder/lora_pkt_fwd
ExecStartPre=/home/pi/packet_forwarder/lora_pkt_fwd/reset_lgw.sh start
ExecStart=/home/pi/packet_forwarder/lora_pkt_fwd/lora_pkt_fwd
[Install]
WantedBy=multi-user.target
lora_pkt_fwdを起動する前にGPIOピンをリセットする小さなシェルスクリプトがあります。以下は、これら2つのファイルの権限です。
-rwxr-xr-x 1 pi pi 1485 Jul 3 21:38 reset_lgw.sh
-rwxr-xr-x 1 pi pi 144680 Jul 3 20:17 lora_pkt_fwd
設定に関して以下を試しました。
- シェルスクリプトとしての「bash」 -
ExecStartPre=bash /home/pi/packet_forwarder/lora_pkt_fwd/reset_lgw.sh start
- [Unit]セクションで、After=network.target、Before=network-online.target、Wants=network-online.targetを組み合わせてみてください。
- Type = simpleを試して[サービス]セクションで分岐します。
- サービスを無効に/有効にしてデーモンを再ロードしてみてください。
cronなどを使ってこれを行うことができますが、正しく実行したいと思います。
答え1
ここで正しい文書を探している人は私の仕事です。
[Unit]
Description=Packet forwarder for LORA-Helium
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
StartLimitAction=reboot
User=pi
WorkingDirectory=/home/pi/sx1302_hal/packet_forwarder/
ExecStartPre=bash /home/pi/sx1302_hal/packet_forwarder/reset_lgw.sh start
ExecStart=/home/pi/sx1302_hal/packet_forwarder/lora_pkt_fwd -c /home/pi/sx1302_hal/packet_forwarder/global_conf.json
[Install]
WantedBy=multi-user.target