Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
シェルのセッション
Search
Satoru Takeuchi
PRO
February 08, 2025
Technology
120
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
シェルのセッション
以下動画のテキストです。
https://youtu.be/obf6qnCBkQU
Satoru Takeuchi
PRO
February 08, 2025
Transcript
8 slides
シェルのセッション 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
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Btrfsのsnapshotとランダム書き込み
sat
PRO
0
23
ファイルシステムのデフラグ
sat
PRO
1
31
コピーオンライト型ファイルシステムと ランダム書き込み
sat
PRO
2
95
119-多機能ファイルシステムBtrfs_のコピー.pdf
sat
PRO
1
86
Linuxカーネルの インタフェースは変わりうる?
sat
PRO
1
120
あなたの知らないバージョン命名規則
sat
PRO
3
940
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
84
Machine Check Exception
sat
PRO
2
75
バイナリダンプの模様を読む
sat
PRO
0
120
Other Decks in Technology
See All in Technology
生成AI時代のIAMのマニアックな話
takuros
6
3.3k
JAWSコミュニティに 参加して1年経った結果
ssakita
0
150
BALLAS Technology Deck
ballas_inc
0
640
Linuxネットワークスタック進化の軌跡: 過去10年の歩みと最新トレンド
orimanabu
4
710
Reticulum, le réseau cypherpunk dont vous avez besoin !
rlifchitz
0
140
会社説明資料_最新版
demaecan
0
32k
Biohub - Cell Tracking During Development 5th place solution
rist
0
160
3文字略語に騙されない! 世界一わかりやすい『EDR』超入門
kamadamakoto
1
170
おうち環境でも「なるべく止めたくない!」 ― おうち環境の機器冗長化の理想と現実
yuutosi
1
410
Kiro Web 入門 (サインインから、頼み方、PR の受け取り、クラウドの決まりまで) | 目指せ Kiro マスター 04
inariku
PRO
2
120
さようならSSH鍵、こんにちはゼロトラスト ― AIフレンドリーで快適な自宅鯖SSH
atalie2m
4
1.5k
これからのデータエンジニアの役割について考える / Rethinking the Role of Data Engineers in the AI Era
okiyuki99
0
490
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
First, design no harm
axbom
PRO
2
1.4k
Music & Morning Musume
bryan
48
7.5k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
540
GraphQLとの向き合い方2022年版
quramy
50
15k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
For a Future-Friendly Web
brad_frost
184
11k
Google's AI Overviews - The New Search
badams
0
1.7k
Marketing to machines
jonoalderson
1
6k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3.1k