2015-10-14 42 views
0

看起來,默認情況下,當您調用Node.js父進程的process.exit()時,它會殺死它產生的子進程。如果這是正確的,防止這種情況發生的最好方法是什麼?父進程自動查殺Node.js中的child_processes

一個猜測,我有,沒有工作,是試圖覆蓋SIGTERM的默認行爲,由子代碼這樣做:

process.on('SIGTERM',function(msg){ 
    console.log('SIGTERM...'); 
}); 

但顯然不會因爲工作它只是增加了一個名義上的監聽器,並且不會覆蓋任何行爲。

回答

1

options.detached設置爲true以使子進程成爲新進程組和會話的負責人。

var child = spawn('prg', [], { 
    detached: true, 
    stdio: [ 'ignore', out, err ] 
}); 
+0

你知道,如果這與cp.fork作品()呢? –

+0

@AlexMills當我嘗試一個叉子時,它被默認分離,意味着腳本仍然在主線程上執行process.exit後執行 –

+0

呵呵我有相反的經歷,讓我再仔細檢查一下 –