[問題] CGI外部呼叫Daemon造成網頁不停的等待

看板Web_Design作者 (隨便聊聊(male) ~~~)時間10年前 (2015/06/16 09:39), 10年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
我的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" 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.235.222.69 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1434418763.A.904.html ※ 編輯: oso123 (111.235.222.69), 06/16/2015 10:34:53

06/17 01:44, , 1F
google "daemon fork 兩次" 看有沒有幫助
06/17 01:44, 1F
文章代碼(AID): #1LVtvBa4 (Web_Design)
文章代碼(AID): #1LVtvBa4 (Web_Design)