我想从 cgi 调用中分叉一个后台进程。这样 httpd 调用立即返回,其余的东西继续运行
在我们迁移到新机器之前,这一直有效
............
## Close the http connection so that the remote client returns
close STDOUT;
close STDERR;
POSIX::setsid();
fork() && exit;
do_job();
.........
现在在新机器上,相同的代码永远不会执行 do_job() Perl,httpd 版本相同(有一个小的内核升级)
现在我将代码更改为
..........
open(STDOUT,">/dev/null");
open(STDERR,">/dev/null");
POSIX::setsid();
fork() && exit;
do_job();
.........
这有效,但我不知道为什么