我使用spawn
來創建子進程。我想創建一個子進程並在之後啓動我想退出當前進程。處理子進程開始
var Spawn = require("child_process").spawn;
var sp = Spawn("sleep", ["10000"]);
sp.unref();
process.exit();
上面的代碼工作正常:它會創建一個子進程(sleep
)將活10秒,電流處理退出。
我可以肯定,當我做process.exit()
sleep
進程是活動的或通過結束父進程,子進程也將被終止?
在這是一個簡單的例子,process.exit()
是無用的,因爲過程將結束,因爲我打電話unref
。但是,這只是一個例子。
那麼,有沒有什麼事情要聽從sp
(孩子的過程),告訴我嘿我活躍?
在某些情況下(例如var sp = Spawn("node", ["foo", "--bar"]);
),我在ps aux | grep node
的輸出中看到[nodejs] <defunct>
,就在產卵呼叫之後。這發生在我可以控制應用程序運行的調試模式中。這意味着這個過程還沒有活躍,我想。
信號是你的朋友。 –