by shigemk2

当面は技術的なことしか書かない

孤児プロセス

たとえばこのようなrubyプログラムを実行する。

fork do
  5.times do
    sleep 1
    puts "I am an orphan!"
  end
end

abort "Parent process died..."

親プロセスはこのプログラムの実行によってすぐ死ぬが、
子プロセスはまだ生きており、STDOUTが上書きされてしまう。
しかも端末はそのまま終わらない(僕の環境ではenterキーを押したら戻った)

$ ruby fork.rb
Parent process died...
$ I am an orphan!
I am an orphan!
I am an orphan!
I am an orphan!
I am an orphan!

親が死んだプロセスは孤児になるが、意図的に孤児にしているプロセスもあり、
これはいつまでも動きつづける。こういうプロセスをデーモンプロセスという。

http://tatsu-zine.com/books/naruhounix