孤児プロセスとゾンビプロセスの違いがうまく理解できてなかったけど、ようやく違いを確認することができた。 孤児プロセス 孤児プロセスは、親プロセスがwaitせずに先に逝ってしまった後も走り続けている子プロセス。 Orphan Process とも呼ばれる。 親のいなくなった子プロセスはinitプロセスの子(孤児)になる。 親プロセスが死んで、子プロセスの親が変化する様子を見るには以下のようなスクリプトを実行したあとでファイルをtailすると分かりやすそう。 Process.fork do File.open('orphan', 'a') do |f| loop do sleep 1 # 親プロセスのpidをファイルに書き出す f.puts Process.ppid f.flush end end end sleep 5 このプログラムを実行して、orphanをtail -fで観察していると、