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
絶対殺すSIGKILLシグナルと絶対死なないプロセス
Search
Satoru Takeuchi
PRO
February 08, 2025
Technology
3
76
絶対殺すSIGKILLシグナルと絶対死なないプロセス
以下動画のテキストです。
https://youtu.be/PVf59Tsfz-0
Satoru Takeuchi
PRO
February 08, 2025
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
シェルのジョブ
sat
PRO
1
18
常駐サービスを実現するデーモンプロセス
sat
PRO
0
22
シェルのセッション
sat
PRO
2
30
RubyでKubernetesプログラミング
sat
PRO
4
180
プロセスの生成 exec編
sat
PRO
1
39
プロセスの生成 fork&exec編
sat
PRO
0
34
プロセスの生成 コピーオンライトを使ったfork編
sat
PRO
0
33
プロセスの生成 fork編
sat
PRO
0
37
静的ライブラリと 共有ライブラリの違いを実験で確認
sat
PRO
1
56
Other Decks in Technology
See All in Technology
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
510
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
510
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
360
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
1.6k
クラウドサービス事業者におけるOSS
tagomoris
3
950
ビジネスモデリング道場 目的と背景
masuda220
PRO
9
670
Windows の新しい管理者保護モード
murachiakira
0
170
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
830
現場で役立つAPIデザイン
nagix
35
13k
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
260
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
67k
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
140
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
The Language of Interfaces
destraynor
156
24k
Fireside Chat
paigeccino
34
3.2k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
Designing for humans not robots
tammielis
250
25k
Why Our Code Smells
bkeepers
PRO
336
57k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Writing Fast Ruby
sferik
628
61k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Embracing the Ebb and Flow
colly
84
4.6k
Building an army of robots
kneath
303
45k
Transcript
絶対殺すSIGKILLシグナルと 絶対死なないプロセス Feb. 8th, 2025 Satoru Takeuchi X: satoru_takeuchi 1
SIGKILLシグナル • シグナルの一つ ◦ 📝 過去動画: 「その88 シグナル」 • 特徴
◦ デフォルト動作はプロセスの終了 ◦ マスクもできない ◦ シグナルハンドラを設定できない ◦ プロセスを絶対殺すという強い意志 • 詳細は”man 7 signal”を参照 2
プロセスのD state • Linuxにおけるプロセスの状態の一つ ◦ R: 実行可能 or 実行中 ◦
S: イベント待ち状態 ▪ シグナル受信によって待ちが解除される ▪ e.g. キーボード入力待ち ◦ D: イベント待ち状態 ▪ シグナルを受信しても他の状態になるまで処理しない ▪ e.g. I/O待ち • 詳細は”man 1 ps”を参照 3
D stateになったプロセスにSIGKILLを送ると…? 4 VS 絶対殺す SIGKILL 絶対死なない プロセス
D stateになったプロセスの勝ち 5 VS 絶対殺す SIGKILL 絶対死なない プロセス くにへかえるんだな。 おまえにもかぞくがいるだろう
…
D stateのプロセスにはSIGKILLを送っても死なない • カーネルレベルの話なのでユーザ空間からはどうにもならない • よくある例 ◦ ハードウェア障害でI/O処理が進まない ◦ なんらかのカーネルバグ
• 対処方法も色々 ◦ あきらめる ◦ 再起動する ◦ 📝 PFN の Kubernetes クラスタにおける Uninterruptible Sleep との付き合い方 ▪ https://tech.preferred.jp/ja/blog/uninterruptible-sleep-in-k8s/ 6
まとめ • SIGKILLよりもD stateのほうが強い 7