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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Satoru Takeuchi
PRO
February 08, 2025
Technology
2
97
シェルのセッション
以下動画のテキストです。
https://youtu.be/obf6qnCBkQU
Satoru Takeuchi
PRO
February 08, 2025
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
3.4k
ファイルシステムの不整合
sat
PRO
2
120
書籍執筆での生成AIの活用
sat
PRO
2
430
ChatGPTに従って体調管理2026
sat
PRO
0
170
eBPF
sat
PRO
1
130
waruiBPF
sat
PRO
0
120
eBPFとwaruiBPF
sat
PRO
5
4.2k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
1
110
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
220
Other Decks in Technology
See All in Technology
20260311 技術SWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
360
Zeal of the Convert: Taming Shai-Hulud with AI
ramimac
0
150
visionOS 開発向けの MCP / Skills をつくり続けることで XR の探究と学習を最大化
karad
1
590
Lambda Web AdapterでLambdaをWEBフレームワーク利用する
sahou909
0
170
猫でもわかるKiro CLI(AI 駆動開発への道編)
kentapapa
0
260
エンジニアリングマネージャーの仕事
yuheinakasaka
0
110
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
1
150
組織全体で実現する標準監視設計
yuobayashi
3
490
生成AI活用でQAエンジニアにどのような仕事が生まれるか/Support Required of QA Engineers for Generative AI
goyoki
1
260
ガバメントクラウドにおけるAWSの長期継続割引について
takeda_h
2
5.2k
複数クラスタ運用と検索の高度化:ビズリーチにおけるElastic活用事例 / ElasticON Tokyo2026
visional_engineering_and_design
0
170
Postman v12 で変わる API開発ワークフロー (Postman v12 アップデート) / New API development workflow with Postman v12
yokawasa
0
140
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
640
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
SEO for Brand Visibility & Recognition
aleyda
0
4.4k
Code Review Best Practice
trishagee
74
20k
The Limits of Empathy - UXLibs8
cassininazir
1
260
How to build a perfect <img>
jonoalderson
1
5.3k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
240
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
230
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Transcript
シェルのセッション Feb. 8th, 2025 Satoru Takeuchi X: satoru_takeuchi 1
シェルのセッション • ログインしてシェルが立ち上がってからログアウトしてシェルが終了するまでの期間 • ログインセッションとも呼ばれる • カーネルのセッション機能を使っている 2
カーネルのセッション機能 • 各セッションにはセッションID(SID)が割り当てられる • セッションを開始したプロセス(bashなど)がセッションリーダーとなる • 端末(デバイス名はttyXやptyX)に結びついている ◦ 📝 その33「端末デバイス」
◦ ほとんどの場合はgtermのような疑似端末に結びついている ◦ よくわからなければ「文字だらけの白黒のウィンドウ」くらいの感覚でよいです • ログインセッションでないセッションもある ◦ 📝 別動画で紹介予定 3
セッションIDの表示 • bashからps ajxを実行 4 $ ps ajx PPID PID
PGID SID TTY TPGID STAT UID TIME COMMAND ... 19261 19262 19262 19262 pts/0 19647 Ss 1000 0:00 -bash ... 19262 19647 19647 19262 pts/0 19647 R+ 1000 0:00 ps ajx ...
システムに複数のログインセッションが存在する場合 5 Aさんのセッション: go build & vim Bさんのセッション1: ps aux
| less Bさんのセッション2: sleep 10 bash go build zsh ps aux less vim zsh sleep 10 セッション 端末 pty/0 pty/1 pty/2
セッションに紐付く端末が末の接続が切れると… • カーネルがセッションリーダー(bashなど)にSIGHUPを送る • bashはSIGHUPのハンドラで同じセッションに属する全ジョブにSIGHUPを送って から終了 ◦ ジョブはパイプで繋がれた一連のプロセス ▪ 📝
別動画で解説予定 ◦ ジョブにSIGHUPを送る ~= プロセスにSIGHUPを送る ◦ プロセスはSIGHUPを受信するとデフォルトで終了する • 疑似端末ウィンドウを閉じると端末から実行したプロセスが全部終了するのはこの 仕組みによるもの 6
プロセスを終了させたくなければ… • プログラムでの対処 ◦ SIGHUPを無視するコードを書く ◦ SIGHUPのシグナルハンドラを設定して、このシグナルを受信しても終了しないようにする • 便利コマンド ◦
nohupコマンド ▪ SIGHUPを無視する設定にしたうえでプログラムを起動する ◦ bashのdisown組み込みコマンド ▪ ジョブ(プロセスのかたまり)をbashの管理下から外す ▪ bashがSIGHUPを受け取ってもdisownしたジョブにはSIGHUPを送らない 7
まとめ • ログインしてからシェルが立ち上がってログアウトしてシェルが終了するまでに保持 される期間をセッションと呼ぶ • カーネルのセッション機能に結びついている • セッションは端末に結びついている ◦ 端末の接続が切れると通常はセッションに紐づくプロセスはすべて終了する
◦ nohupコマンドやbashのdisown組み込みコマンドを使うと終了を避けられる 8