2015-06-27 33 views
1

我已經完成了fork,然後是exec,但我不知道如何在後臺啓動它。如何在後臺運行一個進程?

我應該在exec之後使用參數嗎?如果是這樣,那是什麼?

+0

http://stackoverflow.com/questions/116701/how-can-acc-program-put - 自己進入背景 –

+0

請問你試過哪個平臺? – alk

+0

至少Linux(或BSD)請參閱:http://man7.org/linux/man-pages/man3/daemon.3.html – alk

回答

2

如果您只是想爲背景使用daemon()

如果你想產卵關閉該則背景本身使用1號和fork()這第一個孩子通話fork()內再次讓第二個孩子的呼叫exec*()該進程後臺運行的過程。讓第一個孩子的初始父親wait()

作爲第二個孩子的父母(過程fork() ed第1次)死亡,exec*() ed過程將由init收回。


注:上面的圖案有時稱爲「雙分叉」。另請參見這裏:Why fork() twice(並從那裏的鏈接)

另一個有趣的設定對這個答案的是在這裏:Linux: Difference between forking twice and daemon(ise)

+0

我編輯了答案以添加手冊頁的鏈接。 –

+0

@BasileStarynkevitch:胡巴西,速度有多快,我正要添加鏈接... :-) Thx! – alk