by shigemk2

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

ゾンビプロセス

終了した子プロセスの情報は親プロセスがProcess.waitを使うとかしない限り
ずっと情報を持ち続ける。

もしProcess.waitを使って子プロセスの終了を待たないつもりなら、
子プロセスをデタッチする必要がある。

# -*- coding: utf-8 -*-
# 1秒後に終了する子プロセスを生成する
pid = fork { sleep 1 }
# 終了した子プロセスのpidを出力する
puts pid
# 親プロセスを永遠にsleepさせる
# こうしておけば子プロセスのステータスを調査できる
sleep

ゾンビプロセスだと statが Z+ とか zとかになる

$ ps 60422
  PID   TT  STAT      TIME COMMAND
60422 s001  Z+     0:00.00 (ruby)

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