0
所以我在unix中創建了一個c程序。這就是它所做的。Exec()和Fork()
1)它分叉了一個過程。
子進程: 執行execv(),其上打印「報警響」的「x」秒後
父進程一個鬧鐘程序: 執行waitpid函數對兒童的上方。 然後退出。
輸出: 所以我跑了它,我收到
一切正常的「X秒後報警響」。但現在我想要的是子進程在後臺運行。這意味着我不想看到它的輸出。但我希望它運行並退出。
所以我在unix中創建了一個c程序。這就是它所做的。Exec()和Fork()
1)它分叉了一個過程。
子進程: 執行execv(),其上打印「報警響」的「x」秒後
父進程一個鬧鐘程序: 執行waitpid函數對兒童的上方。 然後退出。
輸出: 所以我跑了它,我收到
一切正常的「X秒後報警響」。但現在我想要的是子進程在後臺運行。這意味着我不想看到它的輸出。但我希望它運行並退出。
要使子進程在後臺運行,您需要將其設置爲daemon process。
有幾個步驟來使它成爲一個守護進程..
有關更好的解釋,請參見this。
再次分叉子叉,並在這個大孩子做執行。 更多信息:http://stackoverflow.com/questions/10932592/why-fork-twice – alk
我讓孩子叉子成爲執行者的孫子。然後,我讓孩子不用等待grandchi; d。我仍然看到孫子的輸出=/ – RStyle
你會從登錄shell或在啓動時作爲系統進程調用你的程序嗎?一個「守護進程」(你的標記)是一回事,「背景」(你的措辭)是兩件事之一,壓制或重定向輸出(也許你的需要?)是另一回事。你究竟想要什麼? – pilcrow