見出し画像

76. ASP.NET Application を自動起動する

前回の記事

はじめに

前回、IoT Application の設定を Web API で行う、ASP.NET アプリケーションを作成しました。今回は、作成した ASP.NET アプリケーションを、Linux 起動時に自動実行するように設定します。実行環境は、Raspberry Pi 上の Debian 12 相当の Raspbian です。

Linux の自動実行設定

Linux 起動時に自動実行する仕組みは、init.d と systemd を使う二つの方法があるようです。今回は、systemd を使う方法を試します。

systemd による自動起動

色々探していたら、Microsoft Learn のドキュメントに一応手順が書かれているのを発見したので、それに従って作業を進めることにします。ドキュメントは、
自動的に起動するように ASP.NET Core アプリケーションを構成する - ASP.NET Core | Microsoft Learn
です。
※ このページは一昔前の自動翻訳を使っているようで…
基本は、実行ファイルを適当な場所において、その実行ファイルの実行方法を記述するサービスファイルを

  • /usr/lib/systemd/ の下にデフォルトのサービスファイルを格納

  • /user/lib/systemd/system の下に実際に動かすためのサービスファイルを格納

の様に設定して、Linux のコマンドでサービスを有効化する、という形式になります。systemd や init.d で起動されたアプリケーションは、Linux のシステムに常駐するプロセスとして動きます。このプロセスをデーモンと呼びます。

設定用 IoT アプリケーションの自動実行に対する準備

参考にしている Microsoft Docs のページでは、ポート 80 でホストする nginx を使う方法が書かれていますが、前回までの試みでは、特に nginx を使わなくても所望の動きをしていたのと、IoT アプリケーションの設定部分は恒常的な Web サービスではなく、あくまでも IoT 機器設定の一発のみなので、nginx の設定は行わずに作業を進めることにします。

ASP.NET Core アプリケーションの実行ファイル化

先ずは、作成した IoT アプリケーションを実行可能なファイルに変換することにします。前回までは、Web API を通じて設定した IoT Hub への接続情報を格納するファイルを適当な場所(アプリが動いているカレントディレクトリ)に保存していましたが、適切な場所に保存・参照するように変更します。場所は、/var/iotapp にします。

ここから先は

15,789字

2022年3月にマイクロソフトの中の人から外の人になった Embedded D. George が、現時点で持っている知識に加えて、頻繁に…

この記事が気に入ったらサポートをしてみませんか?