グローバルな環境変数の追加(Linux).NET Core アプリ向け

July 6, 2025 4:43

概要

/etc/profile.d フォルダに 以下のようなファイルを置く

ASPNETCORE_ENVIRONMENT.sh

ASPNETCORE_ENVIRONMENT="Staging"
export ASPNETCORE_ENVIRONMENT

サービスの場合

Linux のサービスはユーザーの環境変数を読み込まないので注意が必要。 Environment= に明示的に設定するか、EnvironmentFile= に読み込ませたい環境変数を設定したファイルのパスを記述する

(1) Environment= に明示的に設定

[Unit]
Description=Example .NET Web API App running on CentOS 7

[Service]
WorkingDirectory=/home/hoge/hoge00/app/Web/Hoge.Web.Management
ExecStart=/home/hoge/hoge00/app/Web/Hoge.Web.Management/Hoge.Web.Management
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=hoge00
Environment=ASPNETCORE_ENVIRONMENT=Development

[Install]
WantedBy=multi-user.target

(2) EnvironmentFile= に環境変数を設定したファイルへのパスを設定

[Service]
・・・・
EnvironmentFile=/etc/profile.d/ASPNETCORE_ENVIRONMENT.sh

参考

Linuxで環境変数が保存される仕組み
Linuxでサービス起動したら環境変数が読み込まれなくて困った
LinuxでServiceにする時には、環境変数に気をつける