From: KOSAKI Motohiro Date: 2011-01-25T17:58:51+09:00 Subject: [ruby-dev:43102] Re: use daemon(3) only on *BSD. の意図は? >> Linuxではdaemon関数が存在するにもかかわらず、AC_CHECK_FUNCS(daemon) が偽になるので >> 調べたところ、どうも以下のコミットにより強制的に無効にされているようです。 >> さて >> >> 1.無効にしている理由はなんでしょうか? > > 詳細は忘れましたが > >> * process.c (proc_daemon): double fork to ensure not having ctty. >> [ruby-core:23311] > > doc/ChangeLog-1.9.3 のほうではr23280で直してあるのですが、 > [ruby-core:23305]です。 ああ、すいません見落としていました。 つまり本来の条件は 1) *BSD的な TIOCSCTTY のセマンティクスを持っていない、かつ 2) libcのdaemon(3)が1回しかforkしてない のアンド条件なのが、(2)はめんどうなのでチェックせず(1)もまじめにチェックせずに OS名で判定してるということですね。