グローバルな環境変数の追加(Linux).NET Core アプリ向け
2025年7月6日 13時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にする時には、環境変数に気をつける