systemd service unit自作、ついでにラズパイで付箋アプリ作成

はじめに

今回はServiceの自作を行いたいと思います。環境はRaspbian Busterというdebian系ディストリビューションのOSです。ついでに以前作成した付箋アプリをラズパイに移植したいと思います。ラズパイにはMongoDBのバージョン制限があるので多少改修も行います。興味無い方は、適当にファイル作成するサービスなどで脳内変換してお読み頂ければと思います。

改修

まずラズパイにおけるMongoDBの最新版が2.4.xからになります。

$ mongo -version
MongoDB shell version: 2.4.14

これに伴いNode.js側のドライバもバージョンを下げる必要があります。

npm install mongodb@1.2.13 --save

あとはMongoDBのバージョンが下がった事で使えなくなった関数があるので、index.jsの該当部分を変更します。左が前回のMongoDBが新しいバージョンで書いたソースで、右が今回改修したコードです。

ドキュメント挿入時の関数名が変わっています。

ドキュメント削除時の関数名も変わっています。また条件判定の記述も変わっています。改修はこれだけです。次から本題のServiceを作っていきます。

Service作成

$ cat /etc/systemd/system/stickeynote.service
[Unit]
Description="StickeyNote By MongoDB and Express"
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/pi/StickeyNote
ExecStart=/bin/bash /home/pi/StickeyNote/service.sh

[Install]
WantedBy=multi-user.target
  • After=network.target
    • 先に起動するのを待つUnit
  • Type=simple
    • ExecStartで指定したコマンドがメインプロセス

作成が終わったら設定を読み込んでエラーがなければ成功です。

# systemctl daemon-reload

enableで自動起動すれば毎回実行しなくて済みます。

終わりに

グローバルIPなんてぽんぽん取得出来るものでは無いし、AWSでも稼働し続けるのは良いとは言い切れないですよね。リソースには限りがあるので…….そんな時便利なのがラズパイだと思っています。今は手持ちに2台あるのですが、部屋の各所に配置してスマートホームを作る事が近々の目標です。照明とか換気とか、カメラ制御とかその内記事にすると思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA