2005-05-19
_ [開発] Perlで子プロセスのエラー出力が親プロセスに横取りされる
ループの中で以下のようにfork,execを繰り返していたら、最後にforkしたプロセスでだけ、err.logに吐かれるべき結果が親プロセスのエラー出力に吐かれるという現象に悩まされた。それ以外のプロセスではきちんとerr.logに出力されている。
$pid = fork(); if ($pid == 0) { exec("foo 2> err.log"); }
_ 結局、以下のようにしたら解決。うーむ。
$pid = fork(); if ($pid == 0) { open(STDERR, "> err.log"); exec("foo"); }
READMEと日記の書き方