Ruby 1.9 (win32$BHG(B) $B$G$N(B Process.ppid

e$B5WJ]$G$9!#e(B

e$B%=!<%9%3!<%I$r8+$?>e$G$NH=CG$G!"<B:]$K$OF0$+$7$F$J$$$N$G$9$,!"e(B
win32/win32.c e$B$Ne(B rb_w32_getppid()
e$B$O=i2s$N8F$S=P$7$N$?F%W%m%;%9e(BID
e$B$rLa$9$,!"Fs2sL\0J9
$O>o$Ke(B 0 e$B$K$J$C$F$^$;$s$+!)e(B
(Windows 2000 e$B0J9_$Ne(B NTe$B7O$N$_e(B)

e$B$"$H!“e(BUNIX e$B7O$Ne(B getppid()
e$B$O!”?F%W%m%;%9$,K4$/$J$k$H!"e(Bppid e$B$Oe(B 1(init
e$B%W%m%;%9$Ne(B pid)e$B$K$J$j$^$9$,!“e(BWindows e$B$Ne(B
NtQueryInformationProcess()
e$B$G<hF@$G$-$k?F%W%m%;%9e(BIDe$B$O!”?F%W%m%;%9$,K4$/$J$C$F$bF1$8CM$N$^$^$G$9!#e(B
UNIX e$B$He(B Windows e$B$Ge(B Process.ppid e$B$NF0:n$,0[$J$k$N$G!"e(B

(1) UNIX e$B$He(B Windows e$B$N0c$$$re(B Process.ppid e$B$Ne(B rdoc
e$B%3%a%s%H$KDI2Ce(B
(e$B0c$$$rL@5-e(B)

e$B$^$?$O!"e(B

(2) e$B?F%W%m%;%9$NB8:_$r%A%’%C%/$7$F!"?F$,$$$J$/$J$C$F$$$?$ie(B 0
e$B$rLa$9!#e(B
(UNIXe$B$G$NF0:n$K9g$o$;$k!#?F$,$J$$$H$-$Oe(B 1 e$B$NBe$o$j$Ke(B 0)

e$B$N$I$A$i$+$NBP1~$r$7$?$[$&$,NI$$$N$G$O$J$$$+$H!#e(B

e$B$"$H!"$D$$$G$G$9$,!"?F%W%m%;%9$NB8:%A%’%C%/$r$9$k>l9g$O!"e(Bppid
e$B$KBP1~e(B
e$B$9$k%W%m%;%9$,B8:
$9$k$+$I$&$+%A%’%C%/$9$k$N$_$G$OIT==J,$G!“e(Bppid
e$B$KBPe(B
e$B1~$9$k%W%m%;%9$N%W%m%;%9@8@.;~4V$H<+%W%m%;%9$N%W%m%;%9@8@.;~4V$r<hF@$7e(B
e$B$F!”!V?F%W%m%;%9$N@8@.;~4Ve(B <
e$B<+%W%m%;%9$N@8@.;~4V!W$G$"$k$3$H$r3NG’$9e(B
e$B$kI,MW$,$"$j$^$9!#$H$$$&$N$b!“e(BWindows e$B$Oe(B PID
e$B$N6u$-$,$”$k$H$9$0$K:FMxe(B
e$BMQ$5$l$F$7$^$&$?$a!"@8@.;~4V$N%A%’%C%/$r9T$o$J$$$H!"$=$N%W%m%;%9$,$?$^e(B
e$B$?$^F1$8e(B
PIDe$B$r;}$DL54X78$N%W%m%;%9$G$"$k2DG=@-$,9b$$$?$a$G$9!#e(B