[问题] CGI外部呼叫Daemon造成网页不停的等待

楼主: oso123 (随便聊聊(male) ~~~)   2015-06-16 09:39:18
我的cgi程式是用C写的, Server是thttpd
想请教一下 现在我想在cgi程式中 呼叫一个外部程式(用system, execl等等)去呼叫
这个外部程式(假设名子为while_loop)的内容 是作while loop, 除非等到被kill才会停止
现在遇到的问题是 用了system去呼叫了外部程式 并在后面加入"&" 让它背景执行
但是网页呈现的 是不停的等待 这样是出了什么问题吗?
除非等到我手动去kill掉 while_loop 这个process, 网页才秀出CGI的标准输出
还是cgi中不允许呼叫背景执行的第三方程式?
过程中查了很多 父行程, 子行程 的东西 以及 关掉stdou都试过
请问还有没有其他方法呢??
下面附上我最后试的程式码
还请有遇过此问题的高手 帮忙解答 谢谢!
pid_t child;
child = fork();
if(child != 0)
{
printf("Content-type:text/html\n\n");
printf("RESPONSE_SUCCESS");
fflush(stdout);
setvbuf(stdout, NULL, _IONBF, 0);
exit(0);
}
else
{
execl("/bin/sh", "sh", "-c", "/mnt/mtd/while_loop&",
(char*)0);
fflush(stdout);
setvbuf(stdout, NULL, _IONBF, 0);
}
我最后是希望 网页端能秀出 "RESPONSE_SUCCESS" 同时 背景能执行 "while_loop"
感谢!
作者: eight0 (欸XD)   2015-06-17 01:44:00
google "daemon fork 两次" 看有没有帮助

Links booklink

Contact Us: admin [ a t ] ucptt.com