Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
環境変数
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takuya Tonaru
June 24, 2019
Programming
0
36
環境変数
環境変数の基本的な考え方や誤解されそうなポイントを解説した資料
Takuya Tonaru
June 24, 2019
Tweet
Share
More Decks by Takuya Tonaru
See All by Takuya Tonaru
マルチパラダイムプログラミング
flightonary
0
180
UEFI
flightonary
0
26
Other Decks in Programming
See All in Programming
Package Management Learnings from Homebrew
mikemcquaid
0
230
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
CSC307 Lecture 01
javiergs
PRO
0
690
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
140
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
2026年 エンジニアリング自己学習法
yumechi
0
140
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
780
CSC307 Lecture 09
javiergs
PRO
1
840
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
56
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
220
Agile that works and the tools we love
rasmusluckow
331
21k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Context Engineering - Making Every Token Count
addyosmani
9
660
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
Amusing Abliteration
ianozsvald
0
100
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Code Reviewing Like a Champion
maltzj
527
40k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Transcript
環境変数 Takuya Tonaru
TL;DR プロセスの環境変数とは 設定情報を与える手段の1つで 起動された時点の 親プロセスの環境変数が コピーされる
設定情報を与える手段 プロセスが起動する環境・条件に 応じて動作を変えたいときに使う
設定情報を与える手段 方法はいくつかある ・環境変数 ・引数 ・設定ファイル ここではメリデメの議論はしない
親プロセスの環境変数が コピーされるとは?
直接の親からコピーされる systemd supervisor crond launcher app FOO=bar HOGE=fuga PATH=/bin HOGE=fuga
PATH=/bin LOCALE=ja
過程で変更されうる systemd supervisor crond launcher app FOO=bar FOO=bar 削除 HOGE=fuga
PATH=/bin HOGE=fuga PATH=/bin LOCALE=ja 自身で追加
どうやって設定するか? 親プロセスの仕様を調べる
ケース1:initプロセスで起動する systemd crond initdやsystemdなどinitプロセスには必ずお作法が用 意されている。コンテナ実行環境でもそれぞれお作法 がある。 どうやるかは公式マニュアル読む。
ケース2:ランチャーで起動する ランチャーが親からコピーされた環境変数を無視して 独自に設定しうる。仕様は調べなければわからない。 systemd supervisor crond launcher app
よくある質問 環境変数はユーザごとに設定するものじゃな いですか? 環境変数と(実行)ユーザは別の話です。 このような質問が出るのはサービスの起動と ログイン、それぞれの流れを知らないからだと 推測されます。
よくある質問 exportは環境変数を設定するコマンドじゃな いんですか? Bourne系シェルで環境変数を変更するため の組み込みコマンドです。 操作しているシェルとそこから実行する子プロ セスにしか影響しません。 それにcsh系やfishでは使えません。
よくある質問 起動するとき結局どこかにexportを書けばい いじゃないですか? なんでもシェルで書かれているわけありませ ん。先入観は捨てましょう。
END