Ubuntuで.NETアプリをサービス登録する

Published by

on

Ubuntu上で.NETアプリケーション(ASP.NETアプリ)をOSが起動した際に常駐させた手順を整理します。

項目バージョン
Ubuntu22.04.5LTS
.NET9.0.4

■流れ

以下の流れでオリジナルのASP.NETアプリケーションをOSの起動と同時に実行させることができます。

  1. systemdサービスファイルを作成
  2. 対象サービスの有効化
  3. systemdサービスの起動、OSの再起動で確認

■systemdサービスファイルの作成

「systemd」はLinuxの起動やサービス管理を行うシステムで、アプリやシステムの動作を整理・自動化する役割を担っています。今回はここにオリジナルのASP.NETアプリ(helloworld)を実行するように登録をします。

sudo touch /etc/systemd/system/helloworld.service

上記コマンドでファイルを作成したら以下のような内容で編集を行い保存します。

[Unit]
Description=Hello World App
After=network.target

[Service]
ExecStart=/usr/bin/dotnet /home/user01/app/helloworld.dll
WorkingDirectory=/home/user01/app
Restart=always
User=user01
Group=user01
Environment=ASPNETCORE_URLS=http://192.168.11.50:7000

[Install]
WantedBy=multi-user.target

以下、簡単に各項目を説明します。

  • Description:説明を記載します
  • After:ここではネットワークのサービスが有効になってから起動させたいので「network.target」を指定しています
  • ExecStart:実行するコマンド、ファイルを指定しています
  • Restart:サービスがクラッシュなどした場合自動で再起動させます
  • User、Group:アプリを実行させるユーザ、グループです。root以外を推奨です
  • Environment:環境変数を設定します

■対象サービスを有効化

まず、systemdデーモンをリロードし、新しく登録した対象のサービスを認識させます。その後サービスを有効化します。

sudo systemctl daemon-reload
sudo systemctl enable helloworld.service

■サービスの起動

サービスを起動して確認します。OSを再起動しても同様に起動することを確認します。

sudo systemctl start helloworld.service
sudo systemctl status hellworld.service

ブラウザから「http://192.168.11.50:7000」でアクセスして確認します。これでオリジナルのASP.NETアプリをUbuntuOSの起動と同時に実行させることができます。

コメントを残す