推奨されるように、Linuxは.NET Core Worker Serviceアプリケーションをsystemdデーモン/サービスとしてデプロイしています。 .NET Core アプリケーションは、一体型 exe ファイルを生成する SingleFile プロパティを使用して公開されます。 systemd/system/myService.serviceファイルでExecStartをexeファイルパスに設定しました。
動作しますが、システムを起動するたびに、「抽出された」exeバンドルのサービス作業ディレクトリが/var/tmp/.net/root/{dynamicdirectory} - 起動するたびに生成される動的ディレクトリにマウントされることを確認しました。
固定ディレクトリにファイルをインストールする必要があります。 .service設定オプションでこの機能を制御するオプションが見つかりません。
これを行う方法を知っている人はいますか?
答え1
あなたのユースケースでは、以下を使用してください。Michal Politovskyが提供する情報コメントに。抽出ディレクトリが/var/tmpに設定されている理由は次のとおりです。
DOTNET_BUNDLE_EXTRACT_BASE_DIR
お客様にサービスが提供される環境には存在しません。
これが本当だから、この環境変数を継続的に定義する必要があります。systemd サービスを実行するユーザー。
(または環境ファイルまたは環境定義=サービスファイル自体のオプション)