RaspberryPi3にSoracomAirのSIM挿したあとの話。
通信するにはSoracom提供の connect_air.sh
を走らせておくのだが
それをサービス化する。
サービス化
mkdir -p /opt/soracom/bin
cd /opt/soracom/bin
#### Soracomで公開されているやつ
curl -L -O http://soracom-files.s3.amazonaws.com/connect_air.sh
chmod 555 connect_air.sh
#### startとstopだけのsoracom.shを作る
# connect_air.shを呼ぶだけ
cat > soracom.sh <<'EOF'
#!/bin/bash -e
BASE_DIR=$(cd $(dirname $0)/..;pwd)
case "$1" in
"start")
${BASE_DIR}/bin/connect_air.sh
;;
"stop")
kill -SIGINT $2
;;
esac
EOF
chmod 555 soracom.sh
#### サービス化する
# $MAINPIDでProcessIDを参照できるらしい
cat > /etc/systemd/system/soracom.service <<'EOF'
[Unit]
Description = soracom air ppp connect
[Service]
ExecStart = /opt/soracom/bin/soracom.sh start
ExecStop = /opt/soracom/bin/soracom.sh stop $MAINPID
[Install]
WantedBy = multi-user.target
EOF
使いかた
#### 確認
# soracom.serviceが表示されればOK
systemctl list-unit-files --type=service
#### 起動
# 少し待ってからifconfig叩くとpppがUPになってるはず
systemctl start soracom
#### 停止
systemctl stop soracom
USBドングル挿したら接続開始する、みたいな
upnp的にやってくれるようにできたらいいな。。。