Ubuntu環境でASP.NET Core Web APIをデーモンとして実行します。
デーモンとして実行することで、OS起動時に自動起動されるようになります。
サービスファイルの作成
デーモンの実行に必要となるサービスファイルを作成します。
sudo nano /etc/systemd/system/kestrel-helloapp.service
以下がサービスファイルの例となります。
特に、WorkingDirectoryとExecStart、Userに関しては、自分の環境に合わせて、変更する必要があります。
[Unit]
Description=Example .NET Web API App
[Service]
WorkingDirectory=/var/www/helloapp # ★変更
ExecStart=/root/.dotnet/dotnet /var/www/helloapp/helloapp.dll # ★変更
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root # ★変更
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
サービスの実行
サービスを有効化し、実行します。最後にステータスを確認します
sudo systemctl enable kestrel-helloapp.service
sudo systemctl start kestrel-helloapp.service
sudo systemctl status kestrel-helloapp.service
まとめ
OSを再起動しても、ASP.NET Core Web APIが自動実行されるように、デーモン化する方法をまとめました。